From 5fcfb6cf095d5641153688008ee5f88e3d2a737b Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 26 二月 2026 16:51:37 +0800
Subject: [PATCH] #
---
locale/zh-Hant.json | 89 +++++
pages/home/home.vue | 32 +-
pages/mat/matSelected.vue | 20
locale/zh-Hans.json | 188 ++++++++----
pages.json | 6
locale/ja.json | 117 ++++++-
locale/en.json | 169 +++++++---
locale/uni-app.ja.json | 2
update_locales.js | 138 +++++++++
unflatten.js | 55 +++
pages/InManagement/ContainerBinding/Container_Binding.vue | 74 ++--
11 files changed, 681 insertions(+), 209 deletions(-)
diff --git a/locale/en.json b/locale/en.json
index 0499039..aedb32c 100644
--- a/locale/en.json
+++ b/locale/en.json
@@ -1,59 +1,126 @@
{
- "app.name": "ZoneYung WMS",
- "locale.auto": "System",
- "locale.en": "English",
- "locale.zh-hans": "绠�浣撲腑鏂�",
- "locale.zh-hant": "绻佷綋涓枃",
- "locale.ja": "鏃ヨ",
- "index.title": "Hello i18n",
- "page.login":"Login",
- "page.index":"Index",
- "login":{
- "login": "login",
- "loging": "loging",
- "user": "username",
- "pwd": "password",
- "inputUser": "Please enter your account",
- "inputPwd":"Please enter your password",
- "remPwd":"remember password"
+ "app": {
+ "name": "ZoneYung WMS"
},
- "index":{
- "GR": "Goods Receipt",
- "palletizing": "Palletizing",
- "palletBuilding":"Pallet Building",
- "inspectionRequest":"Inspection Request",
- "qualityInspection":"Quality Inspection",
- "defectiveMarking":"Defective Marking",
- "manualPutaway":"Manual Putaway",
- "stationBinding":"Station Binding",
- "inboundInitiation":"Inbound Initiation",
- "stationUnbinding":"Station Unbinding",
- "bindAndInbound":"Binding And Inbound",
- "quickPicking":"Quick Picking",
- "wavePick":"Wave Picking",
- "outLogin":"Login Out",
- "language-change-confirm":"chenge",
- "hello":"Hello, welcome to log in to the WMS system!",
- "intro":"Make manufacturing and logistics more efficient",
- "checkOrder":"checkOrder"
-
-
+ "locale": {
+ "auto": "System",
+ "en": "English",
+ "zh-hans": "绠�浣撲腑鏂�",
+ "zh-hant": "绻佷綋涓枃",
+ "ja": "鏃ヨ"
},
- "other":{
-
+ "index": {
+ "title": "Hello i18n",
+ "GR": "Goods Receipt",
+ "palletizing": "Palletizing",
+ "palletBuilding": "Pallet Building",
+ "inspectionRequest": "Inspection Request",
+ "qualityInspection": "Quality Inspection",
+ "defectiveMarking": "Defective Marking",
+ "manualPutaway": "Manual Putaway",
+ "stationBinding": "Station Binding",
+ "inboundInitiation": "Inbound Initiation",
+ "stationUnbinding": "Station Unbinding",
+ "bindAndInbound": "Binding And Inbound",
+ "quickPicking": "Quick Picking",
+ "wavePick": "Wave Picking",
+ "outLogin": "Login Out",
+ "language-change-confirm": "chenge",
+ "hello": "Hello, welcome to log in to the WMS system!",
+ "intro": "Make manufacturing and logistics more efficient",
+ "checkOrder": "checkOrder",
+ "workplace": "Zoneyung Workspace",
+ "welcomeBack": "Welcome Back",
+ "systemName": "Zoneyung AS/RS WMS System",
+ "pakin": "Palletizing",
+ "orderPakin": "Order Inbound",
+ "agv_start": "AGV Container Inbound",
+ "agv_back": "AGV Container Return",
+ "stockQuery": "Stock Query",
+ "logOut": "Logout",
+ "copyright": "Copyright 漏 2022 Zhejiang Zoneyung AS/RS Co., Ltd. All rights reserved.",
+ "noAuth": "No permissions or login expired"
},
+ "page": {
+ "login": "Login",
+ "index": "Index"
+ },
+ "login": {
+ "login": "login",
+ "loging": "loging",
+ "user": "username",
+ "pwd": "password",
+ "inputUser": "Please enter your account",
+ "inputPwd": "Please enter your password",
+ "remPwd": "remember password"
+ },
+ "other": {},
"settings": {
- "title": "Settings",
- "ip": "IP Address",
- "port": "Port",
- "project": "Project Name",
- "saved": "Settings Saved",
- "authTitle": "Authentication",
- "inputAuthPwd": "Enter Admin Password",
- "authError": "Incorrect Password"
+ "title": "Settings",
+ "ip": "IP Address",
+ "port": "Port",
+ "project": "Project Name",
+ "saved": "Settings Saved",
+ "authTitle": "Authentication",
+ "inputAuthPwd": "Enter Admin Password",
+ "authError": "Incorrect Password"
},
"common": {
- "confirm": "Confirm",
- "cancel": "Cancel"
+ "confirm": "Confirm",
+ "cancel": "Cancel"
+ },
+ "category": {
+ "inbound": "Inbound Management",
+ "agv": "AGV Management",
+ "stock": "Stock Management",
+ "other": "Other Operations"
+ },
+ "container": {
+ "title": "Palletizing",
+ "palletCode": "Pallet Code",
+ "matCode": "Material Code",
+ "scanPallet": "Scan / Enter Pallet Code",
+ "scanMat": "Scan / Enter Material Code",
+ "matList": "Material List",
+ "matName": "Name",
+ "matSpec": "Spec",
+ "matBatch": "Batch",
+ "matQty": "Quantity",
+ "modify": "Modify",
+ "remove": "Remove",
+ "reset": "Reset",
+ "confirmComb": "Confirm Combin.",
+ "emptyList": "No materials, please scan material code to add",
+ "modifyInfo": "Modify Info",
+ "code": "Code",
+ "confirmRemove": "Confirm Remove",
+ "removeMsg": "Remove this material?",
+ "confirmReset": "Confirm Reset",
+ "resetMsg": "Clear all materials?",
+ "combMsg": "Confirm to palletize and inbound?"
+ },
+ "toast": {
+ "palletError": "Pallet code error, please try again",
+ "queryFail": "Query failed",
+ "modifySuccess": "Modification successful",
+ "removeSuccess": "Removal successful",
+ "scanPalletCode": "Please scan pallet code",
+ "qtyNotZero": "Palletizing quantity cannot be 0",
+ "qtyNotZeroMat": "{0} palletizing quantity cannot be 0",
+ "combSuccess": "Palletizing successful",
+ "combFail": "Palletizing failed",
+ "resetComplete": "Reset complete",
+ "inputQty": "Please enter quantity"
+ },
+ "matSelected": {
+ "title": "Material Info",
+ "matDetail": "Material Details",
+ "matCode": "Material Code",
+ "matName": "Material Name",
+ "spec": "Spec",
+ "batch": "Batch",
+ "inputBatch": "Please enter batch",
+ "qty": "Quantity",
+ "confirmExtract": "Confirm Extract"
}
-}
+}
\ No newline at end of file
diff --git a/locale/ja.json b/locale/ja.json
index b2fa1b8..6b5494f 100644
--- a/locale/ja.json
+++ b/locale/ja.json
@@ -1,23 +1,96 @@
{
- "locale.auto": "銈枫偣銉嗐儬",
- "locale.en": "鑻辫獮",
- "locale.zh-hans": "绠�浣撲腑鏂�",
- "locale.zh-hant": "绻佷綋涓枃",
- "locale.ja": "鏃ヨ",
- "index.title": "Hello i18n",
- "index.home": "銉涖兗銉�",
- "index.component": "銈炽兂銉濄兗銉嶃兂銉�",
- "index.api": "API",
- "index.schema": "Schema",
- "index.demo": "uni-app globalization",
- "index.demo-description": "銉︺儖銉曘儸銉笺儬銉兗銈�乵anifest.json銆乸ages.json銆併偪銉栥儛銉笺�併儦銉笺偢銆併偝銉炽儩銉笺儘銉炽儓銆丄PI銈掑惈銈併倠銆丼chema",
- "index.detail": "瑭崇窗",
- "index.language": "瑷�瑾�",
- "index.language-info": "瑷畾",
- "index.system-language": "銈枫偣銉嗐儬瑷�瑾�",
- "index.application-language": "銈€儣銉偙銉笺偡銉с兂瑷�瑾�",
- "index.language-change-confirm": "銇撱伄瑷畾銈掗仼鐢ㄣ仚銈嬨仺銆併偄銉椼儶銇屽啀璧峰嫊銇椼伨銇�",
- "api.message": "銉°儍銈汇兗銈�",
- "schema.add": "杩藉姞",
- "schema.add-success": "鎴愬姛銈掕拷鍔�"
-}
+ "locale": {
+ "auto": "銈枫偣銉嗐儬",
+ "en": "鑻辫獮",
+ "zh-hans": "绠�浣撲腑鏂�",
+ "zh-hant": "绻佷綋涓枃",
+ "ja": "鏃ヨ"
+ },
+ "index": {
+ "title": "Hello i18n",
+ "home": "銉涖兗銉�",
+ "component": "銈炽兂銉濄兗銉嶃兂銉�",
+ "api": "API",
+ "schema": "Schema",
+ "demo": "uni-app globalization",
+ "demo-description": "銉︺儖銉曘儸銉笺儬銉兗銈�乵anifest.json銆乸ages.json銆併偪銉栥儛銉笺�併儦銉笺偢銆併偝銉炽儩銉笺儘銉炽儓銆丄PI銈掑惈銈併倠銆丼chema",
+ "detail": "瑭崇窗",
+ "language": "瑷�瑾�",
+ "language-info": "瑷畾",
+ "system-language": "銈枫偣銉嗐儬瑷�瑾�",
+ "application-language": "銈€儣銉偙銉笺偡銉с兂瑷�瑾�",
+ "language-change-confirm": "銇撱伄瑷畾銈掗仼鐢ㄣ仚銈嬨仺銆併偄銉椼儶銇屽啀璧峰嫊銇椼伨銇�",
+ "workplace": "Zoneyung 宸ヤ綔鍙�",
+ "welcomeBack": "娆㈣繋鍥炴潵",
+ "systemName": "涓壃绔嬪簱 WMS 浠撳偍绠$悊绯荤粺",
+ "pakin": "缁勬墭",
+ "orderPakin": "璁㈠崟鍏ュ簱",
+ "agv_start": "AGV瀹瑰櫒鍏ュ簱",
+ "agv_back": "AGV瀹瑰櫒鍥炲簱",
+ "stockQuery": "搴撳瓨鏌ヨ",
+ "logOut": "閫�鍑虹櫥褰�",
+ "copyright": "copyright 漏 2022 娴欐睙涓壃绔嬪簱鏈夐檺鍏徃 all rights reserved.",
+ "noAuth": "鏃犳潈闄愭垨鐧诲綍杩囨湡"
+ },
+ "api": {
+ "message": "銉°儍銈汇兗銈�"
+ },
+ "schema": {
+ "add": "杩藉姞",
+ "add-success": "鎴愬姛銈掕拷鍔�"
+ },
+ "category": {
+ "inbound": "鍏ュ簱绠$悊",
+ "agv": "AGV绠$悊",
+ "stock": "搴撳瓨绠$悊",
+ "other": "鍏朵粬鎿嶄綔"
+ },
+ "container": {
+ "title": "缁勬墭",
+ "palletCode": "鎵樼洏鐮�",
+ "matCode": "鐗╂枡鐮�",
+ "scanPallet": "鎵爜 / 杈撳叆鎵樼洏鐮�",
+ "scanMat": "鎵爜 / 杈撳叆鐗╂枡鐮�",
+ "matList": "鍟嗗搧鍒楄〃",
+ "matName": "鍝佸悕",
+ "matSpec": "瑙勬牸",
+ "matBatch": "鎵瑰彿",
+ "matQty": "鏁伴噺",
+ "modify": "淇敼",
+ "remove": "绉婚櫎",
+ "reset": "閲嶇疆",
+ "confirmComb": "纭缁勬墭",
+ "emptyList": "鏆傛棤鍟嗗搧锛岃鎵弿鐗╂枡鐮佹坊鍔�",
+ "modifyInfo": "淇敼淇℃伅",
+ "code": "缂栫爜",
+ "confirmRemove": "纭绉婚櫎",
+ "removeMsg": "鏄惁绉婚櫎璇ュ晢鍝侊紵",
+ "confirmReset": "纭閲嶇疆",
+ "resetMsg": "鏄惁娓呯┖鎵�鏈夊晢鍝侊紵",
+ "combMsg": "纭灏嗗晢鍝佺粍鎵樺叆搴擄紵"
+ },
+ "toast": {
+ "palletError": "鎵樼洏鐮佹湁璇閲嶈瘯",
+ "queryFail": "鏌ヨ澶辫触",
+ "modifySuccess": "淇敼鎴愬姛",
+ "removeSuccess": "绉婚櫎鎴愬姛",
+ "scanPalletCode": "璇锋壂鎻忔墭鐩樻潯鐮�",
+ "qtyNotZero": "缁勬墭鏁伴噺涓嶈兘涓�0",
+ "qtyNotZeroMat": "{0}缁勬墭鏁伴噺涓嶈兘涓�0",
+ "combSuccess": "缁勬墭鎴愬姛",
+ "combFail": "缁勬墭澶辫触",
+ "resetComplete": "閲嶇疆瀹屾垚",
+ "inputQty": "璇疯緭鍏ユ暟閲�"
+ },
+ "matSelected": {
+ "title": "鍟嗗搧淇℃伅",
+ "matDetail": "鐗╂枡璇︽儏",
+ "matCode": "鍟嗗搧缂栫爜",
+ "matName": "鍟嗗搧鍚嶇О",
+ "spec": "瑙勬牸",
+ "batch": "鎵瑰彿",
+ "inputBatch": "璇疯緭鍏ユ壒鍙�",
+ "qty": "鏁伴噺",
+ "confirmExtract": "纭鎻愬彇"
+ }
+}
\ No newline at end of file
diff --git a/locale/uni-app.ja.json b/locale/uni-app.ja.json
index 41cef76..010c3fd 100644
--- a/locale/uni-app.ja.json
+++ b/locale/uni-app.ja.json
@@ -33,4 +33,4 @@
},
"ios": {},
"android": {}
-}
+}
\ No newline at end of file
diff --git a/locale/zh-Hans.json b/locale/zh-Hans.json
index 05d1cd3..97c7b29 100644
--- a/locale/zh-Hans.json
+++ b/locale/zh-Hans.json
@@ -1,61 +1,129 @@
{
- "app.name": "涓壃 WMS",
- "locale.auto": "绯荤粺",
- "locale.en": "English",
- "locale.zh-hans": "绠�浣撲腑鏂�",
- "locale.zh-hant": "绻佷綋涓枃",
- "locale.ja": "鏃ヨ",
- "index.title": "Hello i18n",
- "index.home": "涓婚〉",
- "page.login":"鐧诲綍",
- "page.index":"棣栭〉",
- "login":{
- "login": "鐧诲綍",
- "loging": "鐧诲綍涓�",
- "user": "璐﹀彿",
- "pwd": "瀵嗙爜",
- "inputUser": "璇疯緭鍏ヨ处鍙�",
- "inputPwd":"璇疯緭鍏ュ瘑鐮�",
- "remPwd":"璁颁綇瀵嗙爜"
- },
- "index":{
- "GR": "鍗曟嵁鏀惰揣",
- "palletizing": "鍗曟嵁缁勬墭",
- "palletBuilding":"缁勬墭瑙g粦",
- "inspectionRequest":"鎶ユ",
- "qualityInspection":"璐ㄦ",
- "defectiveMarking":"涓嶈壇鏍囪",
- "manualPutaway":"浜哄伐涓婃灦",
- "stationBinding":"绔欑偣缁戝畾",
- "inboundInitiation":"鍚姩鍏ュ簱",
- "stationUnbinding":"绔欑偣瑙g粦",
- "bindAndInbound":"缁戝畾&鍏ュ簱",
- "quickPicking":"蹇�熸嫞璐�",
- "wavePick":"娉㈡鎷h揣",
- "outLogin":"閫�鍑虹櫥褰�",
- "language-change-confirm":"纭畾鍒囨崲?",
- "hello":"鎮ㄥソ锛屾杩庣櫥褰昗MS绯荤粺锛�",
- "intro":"璁╁埗閫犱笌鐗╂祦鏇撮珮鏁�",
- "checkOrder":"鐩樼偣"
-
-
- },
- "other":{
- "asnNo":"ASN鍗曞彿"
-
- },
- "settings": {
- "title": "璁剧疆",
- "ip": "IP鍦板潃",
- "port": "绔彛",
- "project": "椤圭洰鍚�",
- "saved": "璁剧疆宸蹭繚瀛�",
- "authTitle": "韬唤楠岃瘉",
- "inputAuthPwd": "璇疯緭鍏ョ鐞嗗憳瀵嗙爜",
- "authError": "瀵嗙爜閿欒"
- },
- "common": {
- "confirm": "纭",
- "cancel": "鍙栨秷"
- }
-}
+ "app": {
+ "name": "涓壃 WMS"
+ },
+ "locale": {
+ "auto": "绯荤粺",
+ "en": "English",
+ "zh-hans": "绠�浣撲腑鏂�",
+ "zh-hant": "绻佷綋涓枃",
+ "ja": "鏃ヨ"
+ },
+ "index": {
+ "title": "Hello i18n",
+ "home": "涓婚〉",
+ "GR": "鍗曟嵁鏀惰揣",
+ "palletizing": "鍗曟嵁缁勬墭",
+ "palletBuilding": "缁勬墭瑙g粦",
+ "inspectionRequest": "鎶ユ",
+ "qualityInspection": "璐ㄦ",
+ "defectiveMarking": "涓嶈壇鏍囪",
+ "manualPutaway": "浜哄伐涓婃灦",
+ "stationBinding": "绔欑偣缁戝畾",
+ "inboundInitiation": "鍚姩鍏ュ簱",
+ "stationUnbinding": "绔欑偣瑙g粦",
+ "bindAndInbound": "缁戝畾&鍏ュ簱",
+ "quickPicking": "蹇�熸嫞璐�",
+ "wavePick": "娉㈡鎷h揣",
+ "outLogin": "閫�鍑虹櫥褰�",
+ "language-change-confirm": "纭畾鍒囨崲?",
+ "hello": "鎮ㄥソ锛屾杩庣櫥褰昗MS绯荤粺锛�",
+ "intro": "璁╁埗閫犱笌鐗╂祦鏇撮珮鏁�",
+ "checkOrder": "鐩樼偣",
+ "workplace": "Zoneyung 宸ヤ綔鍙�",
+ "welcomeBack": "娆㈣繋鍥炴潵",
+ "systemName": "涓壃绔嬪簱 WMS 浠撳偍绠$悊绯荤粺",
+ "pakin": "缁勬墭",
+ "orderPakin": "璁㈠崟鍏ュ簱",
+ "agv_start": "AGV瀹瑰櫒鍏ュ簱",
+ "agv_back": "AGV瀹瑰櫒鍥炲簱",
+ "stockQuery": "搴撳瓨鏌ヨ",
+ "logOut": "閫�鍑虹櫥褰�",
+ "copyright": "copyright 漏 2022 娴欐睙涓壃绔嬪簱鏈夐檺鍏徃 all rights reserved.",
+ "noAuth": "鏃犳潈闄愭垨鐧诲綍杩囨湡"
+ },
+ "page": {
+ "login": "鐧诲綍",
+ "index": "棣栭〉"
+ },
+ "login": {
+ "login": "鐧诲綍",
+ "loging": "鐧诲綍涓�",
+ "user": "璐﹀彿",
+ "pwd": "瀵嗙爜",
+ "inputUser": "璇疯緭鍏ヨ处鍙�",
+ "inputPwd": "璇疯緭鍏ュ瘑鐮�",
+ "remPwd": "璁颁綇瀵嗙爜"
+ },
+ "other": {
+ "asnNo": "ASN鍗曞彿"
+ },
+ "settings": {
+ "title": "璁剧疆",
+ "ip": "IP鍦板潃",
+ "port": "绔彛",
+ "project": "椤圭洰鍚�",
+ "saved": "璁剧疆宸蹭繚瀛�",
+ "authTitle": "韬唤楠岃瘉",
+ "inputAuthPwd": "璇疯緭鍏ョ鐞嗗憳瀵嗙爜",
+ "authError": "瀵嗙爜閿欒"
+ },
+ "common": {
+ "confirm": "纭",
+ "cancel": "鍙栨秷"
+ },
+ "category": {
+ "inbound": "鍏ュ簱绠$悊",
+ "agv": "AGV绠$悊",
+ "stock": "搴撳瓨绠$悊",
+ "other": "鍏朵粬鎿嶄綔"
+ },
+ "container": {
+ "title": "缁勬墭",
+ "palletCode": "鎵樼洏鐮�",
+ "matCode": "鐗╂枡鐮�",
+ "scanPallet": "鎵爜 / 杈撳叆鎵樼洏鐮�",
+ "scanMat": "鎵爜 / 杈撳叆鐗╂枡鐮�",
+ "matList": "鍟嗗搧鍒楄〃",
+ "matName": "鍝佸悕",
+ "matSpec": "瑙勬牸",
+ "matBatch": "鎵瑰彿",
+ "matQty": "鏁伴噺",
+ "modify": "淇敼",
+ "remove": "绉婚櫎",
+ "reset": "閲嶇疆",
+ "confirmComb": "纭缁勬墭",
+ "emptyList": "鏆傛棤鍟嗗搧锛岃鎵弿鐗╂枡鐮佹坊鍔�",
+ "modifyInfo": "淇敼淇℃伅",
+ "code": "缂栫爜",
+ "confirmRemove": "纭绉婚櫎",
+ "removeMsg": "鏄惁绉婚櫎璇ュ晢鍝侊紵",
+ "confirmReset": "纭閲嶇疆",
+ "resetMsg": "鏄惁娓呯┖鎵�鏈夊晢鍝侊紵",
+ "combMsg": "纭灏嗗晢鍝佺粍鎵樺叆搴擄紵"
+ },
+ "toast": {
+ "palletError": "鎵樼洏鐮佹湁璇閲嶈瘯",
+ "queryFail": "鏌ヨ澶辫触",
+ "modifySuccess": "淇敼鎴愬姛",
+ "removeSuccess": "绉婚櫎鎴愬姛",
+ "scanPalletCode": "璇锋壂鎻忔墭鐩樻潯鐮�",
+ "qtyNotZero": "缁勬墭鏁伴噺涓嶈兘涓�0",
+ "qtyNotZeroMat": "{0}缁勬墭鏁伴噺涓嶈兘涓�0",
+ "combSuccess": "缁勬墭鎴愬姛",
+ "combFail": "缁勬墭澶辫触",
+ "resetComplete": "閲嶇疆瀹屾垚",
+ "inputQty": "璇疯緭鍏ユ暟閲�"
+ },
+ "matSelected": {
+ "title": "鍟嗗搧淇℃伅",
+ "matDetail": "鐗╂枡璇︽儏",
+ "matCode": "鍟嗗搧缂栫爜",
+ "matName": "鍟嗗搧鍚嶇О",
+ "spec": "瑙勬牸",
+ "batch": "鎵瑰彿",
+ "inputBatch": "璇疯緭鍏ユ壒鍙�",
+ "qty": "鏁伴噺",
+ "confirmExtract": "纭鎻愬彇"
+ }
+}
\ No newline at end of file
diff --git a/locale/zh-Hant.json b/locale/zh-Hant.json
index 9e1a418..ba2dcf4 100644
--- a/locale/zh-Hant.json
+++ b/locale/zh-Hant.json
@@ -1,10 +1,81 @@
{
- "locale.auto": "绯荤当",
- "locale.en": "English",
- "locale.zh-hans": "绠�浣撲腑鏂�",
- "locale.zh-hant": "绻侀珨涓枃",
- "locale.ja": "鏃ヨ",
- "index.title": "Hello i18n",
- "index.home": "涓婚爜",
- "login.login": "鐧诲綍"
-}
+ "locale": {
+ "auto": "绯荤当",
+ "en": "English",
+ "zh-hans": "绠�浣撲腑鏂�",
+ "zh-hant": "绻侀珨涓枃",
+ "ja": "鏃ヨ"
+ },
+ "index": {
+ "title": "Hello i18n",
+ "home": "涓婚爜",
+ "workplace": "Zoneyung 宸ヤ綔鍙�",
+ "welcomeBack": "娆㈣繋鍥炴潵",
+ "systemName": "涓壃绔嬪簱 WMS 浠撳偍绠$悊绯荤粺",
+ "pakin": "缁勬墭",
+ "orderPakin": "璁㈠崟鍏ュ簱",
+ "agv_start": "AGV瀹瑰櫒鍏ュ簱",
+ "agv_back": "AGV瀹瑰櫒鍥炲簱",
+ "stockQuery": "搴撳瓨鏌ヨ",
+ "logOut": "閫�鍑虹櫥褰�",
+ "copyright": "copyright 漏 2022 娴欐睙涓壃绔嬪簱鏈夐檺鍏徃 all rights reserved.",
+ "noAuth": "鏃犳潈闄愭垨鐧诲綍杩囨湡"
+ },
+ "login": {
+ "login": "鐧诲綍"
+ },
+ "category": {
+ "inbound": "鍏ュ簱绠$悊",
+ "agv": "AGV绠$悊",
+ "stock": "搴撳瓨绠$悊",
+ "other": "鍏朵粬鎿嶄綔"
+ },
+ "container": {
+ "title": "缁勬墭",
+ "palletCode": "鎵樼洏鐮�",
+ "matCode": "鐗╂枡鐮�",
+ "scanPallet": "鎵爜 / 杈撳叆鎵樼洏鐮�",
+ "scanMat": "鎵爜 / 杈撳叆鐗╂枡鐮�",
+ "matList": "鍟嗗搧鍒楄〃",
+ "matName": "鍝佸悕",
+ "matSpec": "瑙勬牸",
+ "matBatch": "鎵瑰彿",
+ "matQty": "鏁伴噺",
+ "modify": "淇敼",
+ "remove": "绉婚櫎",
+ "reset": "閲嶇疆",
+ "confirmComb": "纭缁勬墭",
+ "emptyList": "鏆傛棤鍟嗗搧锛岃鎵弿鐗╂枡鐮佹坊鍔�",
+ "modifyInfo": "淇敼淇℃伅",
+ "code": "缂栫爜",
+ "confirmRemove": "纭绉婚櫎",
+ "removeMsg": "鏄惁绉婚櫎璇ュ晢鍝侊紵",
+ "confirmReset": "纭閲嶇疆",
+ "resetMsg": "鏄惁娓呯┖鎵�鏈夊晢鍝侊紵",
+ "combMsg": "纭灏嗗晢鍝佺粍鎵樺叆搴擄紵"
+ },
+ "toast": {
+ "palletError": "鎵樼洏鐮佹湁璇閲嶈瘯",
+ "queryFail": "鏌ヨ澶辫触",
+ "modifySuccess": "淇敼鎴愬姛",
+ "removeSuccess": "绉婚櫎鎴愬姛",
+ "scanPalletCode": "璇锋壂鎻忔墭鐩樻潯鐮�",
+ "qtyNotZero": "缁勬墭鏁伴噺涓嶈兘涓�0",
+ "qtyNotZeroMat": "{0}缁勬墭鏁伴噺涓嶈兘涓�0",
+ "combSuccess": "缁勬墭鎴愬姛",
+ "combFail": "缁勬墭澶辫触",
+ "resetComplete": "閲嶇疆瀹屾垚",
+ "inputQty": "璇疯緭鍏ユ暟閲�"
+ },
+ "matSelected": {
+ "title": "鍟嗗搧淇℃伅",
+ "matDetail": "鐗╂枡璇︽儏",
+ "matCode": "鍟嗗搧缂栫爜",
+ "matName": "鍟嗗搧鍚嶇О",
+ "spec": "瑙勬牸",
+ "batch": "鎵瑰彿",
+ "inputBatch": "璇疯緭鍏ユ壒鍙�",
+ "qty": "鏁伴噺",
+ "confirmExtract": "纭鎻愬彇"
+ }
+}
\ No newline at end of file
diff --git a/pages.json b/pages.json
index a38cf72..5e72bb3 100644
--- a/pages.json
+++ b/pages.json
@@ -10,21 +10,21 @@
{
"path": "pages/home/home",
"style": {
- "navigationBarTitleText": "棣栭〉",
+ "navigationBarTitleText": "%index.home%",
"navigationStyle": "custom"
}
},
{
"path": "pages/InManagement/ContainerBinding/Container_Binding",
"style": {
- "navigationBarTitleText": "瀹瑰櫒缁戝畾",
+ "navigationBarTitleText": "%container.title%",
"navigationStyle": "custom"
}
},
{
"path": "pages/mat/matSelected",
"style": {
- "navigationBarTitleText": "鐗╂枡缂栬緫",
+ "navigationBarTitleText": "%matSelected.title%",
"navigationStyle": "custom"
}
},
diff --git a/pages/InManagement/ContainerBinding/Container_Binding.vue b/pages/InManagement/ContainerBinding/Container_Binding.vue
index 5124566..d69421b 100644
--- a/pages/InManagement/ContainerBinding/Container_Binding.vue
+++ b/pages/InManagement/ContainerBinding/Container_Binding.vue
@@ -2,7 +2,7 @@
<view class="page-container">
<!-- 澶撮儴瀵艰埅 -->
<u-navbar
- title="缁勬墭"
+ :title="$t('container.title')"
:fixed="true"
:placeholder="true"
bgColor="#ffffff"
@@ -25,13 +25,13 @@
color="#409eff"
customStyle="margin-right: 10rpx;"
></u-icon>
- <text class="label-text">鎵樼洏鐮�</text>
+ <text class="label-text">{{ $t('container.palletCode') }}</text>
</view>
</template>
<view class="input-wrap">
<u--input
v-model="barcode"
- placeholder="鎵爜 / 杈撳叆鎵樼洏鐮�"
+ :placeholder="$t('container.scanPallet')"
clearable
border="none"
:focus="barcodeFocus"
@@ -47,13 +47,13 @@
color="#409eff"
customStyle="margin-right: 10rpx;"
></u-icon>
- <text class="label-text">鐗╂枡鐮�</text>
+ <text class="label-text">{{ $t('container.matCode') }}</text>
</view>
</template>
<view class="input-wrap">
<u--input
v-model="matnr"
- placeholder="鎵爜 / 杈撳叆鐗╂枡鐮�"
+ :placeholder="$t('container.scanMat')"
clearable
border="none"
:focus="matFocus"
@@ -70,7 +70,7 @@
<view class="list-header">
<view class="title-indicator"></view>
<text class="header-title">
- 鍟嗗搧鍒楄〃 ({{ dataList.length }})
+ {{ $t('container.matList') }} ({{ dataList.length }})
</text>
</view>
@@ -87,20 +87,20 @@
<view class="card-content">
<view class="info-row">
- <text class="info-label">鍝佸悕</text>
+ <text class="info-label">{{ $t('container.matName') }}</text>
<text class="info-value">
{{ item.maktx || '-' }}
</text>
</view>
<view class="info-row">
<view class="info-col">
- <text class="info-label">瑙勬牸</text>
+ <text class="info-label">{{ $t('container.matSpec') }}</text>
<text class="info-value">
{{ item.specs || '-' }}
</text>
</view>
<view class="info-col">
- <text class="info-label">鎵瑰彿</text>
+ <text class="info-label">{{ $t('container.matBatch') }}</text>
<text class="info-value highlight">
{{ item.batch || '-' }}
</text>
@@ -108,7 +108,7 @@
</view>
<view class="info-row">
<view class="info-col">
- <text class="info-label">鏁伴噺</text>
+ <text class="info-label">{{ $t('container.matQty') }}</text>
<text class="info-value qty">
{{ item.anfme }}
</text>
@@ -121,7 +121,7 @@
type="primary"
size="small"
plain
- text="淇敼"
+ :text="$t('container.modify')"
@click="revise(item, i)"
customStyle="width: 140rpx; margin: 0;"
></u-button>
@@ -130,7 +130,7 @@
type="error"
size="small"
plain
- text="绉婚櫎"
+ :text="$t('container.remove')"
@click="remove(item, i)"
customStyle="width: 140rpx; margin: 0;"
></u-button>
@@ -140,7 +140,7 @@
<u-empty
v-if="dataList.length === 0"
mode="list"
- text="鏆傛棤鍟嗗搧锛岃鎵弿鐗╂枡鐮佹坊鍔�"
+ :text="$t('container.emptyList')"
marginTop="40"
></u-empty>
</view>
@@ -151,7 +151,7 @@
<view class="btn-wrap">
<u-button
type="info"
- text="閲嶇疆"
+ :text="$t('container.reset')"
@click="resetConfirmBtn"
></u-button>
</view>
@@ -161,7 +161,7 @@
>
<u-button
type="primary"
- text="纭缁勬墭"
+ :text="$t('container.confirmComb')"
@click="combConfirmBtn"
:disabled="dataList.length === 0"
:throttleTime="1500"
@@ -177,23 +177,23 @@
@close="showRevise = false"
>
<view class="popup-card">
- <view class="popup-header"><text>淇敼淇℃伅</text></view>
+ <view class="popup-header"><text>{{ $t('container.modifyInfo') }}</text></view>
<view class="popup-body">
<u--form
labelWidth="80"
labelPosition="left"
>
- <u-form-item label="缂栫爜">
+ <u-form-item :label="$t('container.code')">
<text class="popup-text-val">{{ editMatnr }}</text>
</u-form-item>
- <u-form-item label="鎵瑰彿">
+ <u-form-item :label="$t('container.matBatch')">
<u--input
v-model="batch"
- placeholder="杈撳叆鎵瑰彿"
+ :placeholder="$t('matSelected.inputBatch')"
border="surround"
></u--input>
</u-form-item>
- <u-form-item label="鏁伴噺">
+ <u-form-item :label="$t('container.matQty')">
<u-number-box
v-model="count"
:step="0.01"
@@ -205,13 +205,13 @@
</view>
<view class="popup-footer">
<u-button
- text="鍙栨秷"
+ :text="$t('common.cancel')"
@click="showRevise = false"
customStyle="margin-right: 20rpx; flex: 1;"
></u-button>
<u-button
type="primary"
- text="纭"
+ :text="$t('common.confirm')"
@click="reviseConfirm"
customStyle="flex: 1;"
></u-button>
@@ -222,24 +222,24 @@
<!-- 妯℃�佹 -->
<u-modal
:show="showRemove"
- title="纭绉婚櫎"
- content="鏄惁绉婚櫎璇ュ晢鍝侊紵"
+ :title="$t('container.confirmRemove')"
+ :content="$t('container.removeMsg')"
showCancelButton
@confirm="removeConfirm"
@cancel="showRemove = false"
></u-modal>
<u-modal
:show="showComb"
- title="纭缁勬墭"
- content="纭灏嗗晢鍝佺粍鎵樺叆搴擄紵"
+ :title="$t('container.confirmComb')"
+ :content="$t('container.combMsg')"
showCancelButton
@confirm="comb"
@cancel="showComb = false"
></u-modal>
<u-modal
:show="showReset"
- title="纭閲嶇疆"
- content="鏄惁娓呯┖鎵�鏈夊晢鍝侊紵"
+ :title="$t('container.confirmReset')"
+ :content="$t('container.resetMsg')"
showCancelButton
@confirm="resetConfirm"
@cancel="showReset = false"
@@ -281,7 +281,7 @@
if (len > 0 && len !== 8 && len !== 9) {
this.$showToast({
type: 'error',
- message: '鎵樼洏鐮佹湁璇閲嶈瘯'
+ message: this.$t('toast.palletError')
})
this.barcodeFocuss()
return
@@ -339,7 +339,7 @@
if (!data && data !== null) {
this.$showToast({
type: 'error',
- message: msg || '鏌ヨ澶辫触'
+ message: msg || this.$t('toast.queryFail')
})
}
}
@@ -392,7 +392,7 @@
this.dataList[this.rowNum].batch = this.batch
this.dataList[this.rowNum].weight = this.weight
this.editMatnr = ''
- this.$showToast({ type: 'success', message: '淇敼鎴愬姛' })
+ this.$showToast({ type: 'success', message: this.$t('toast.modifySuccess') })
this.showRevise = false
},
remove(item, i) {
@@ -401,7 +401,7 @@
},
removeConfirm() {
this.dataList.splice(this.removeNum, 1)
- this.$showToast({ type: 'success', message: '绉婚櫎鎴愬姛' })
+ this.$showToast({ type: 'success', message: this.$t('toast.removeSuccess') })
this.showRemove = false
},
combConfirmBtn() {
@@ -410,7 +410,7 @@
},
async comb() {
if (this.barcode === '') {
- this.$showToast({ type: 'error', message: '璇锋壂鎻忔墭鐩樻潯鐮�' })
+ this.$showToast({ type: 'error', message: this.$t('toast.scanPalletCode') })
this.showComb = false
return
}
@@ -421,7 +421,7 @@
) {
this.$showToast({
type: 'error',
- message: this.dataList[i].matnr + '缁勬墭鏁伴噺涓嶈兘涓�0'
+ message: this.$t('toast.qtyNotZeroMat').replace('{0}', this.dataList[i].matnr)
})
this.showComb = false
return
@@ -442,7 +442,7 @@
if (code === 200) {
this.resst()
- this.$showToast({ type: 'success', message: '缁勬墭鎴愬姛' })
+ this.$showToast({ type: 'success', message: this.$t('toast.combSuccess') })
} else if (code === 403) {
this.$showToast({ type: 'error', message: msg })
setTimeout(() => {
@@ -451,7 +451,7 @@
} else {
this.$showToast({
type: 'error',
- message: msg || '缁勬墭澶辫触'
+ message: msg || this.$t('toast.combFail')
})
}
} catch (err) {
@@ -464,7 +464,7 @@
resetConfirm() {
this.dataList = []
this.barcode = ''
- this.$showToast({ type: 'success', message: '閲嶇疆瀹屾垚' })
+ this.$showToast({ type: 'success', message: this.$t('toast.resetComplete') })
this.showReset = false
},
resst() {
diff --git a/pages/home/home.vue b/pages/home/home.vue
index c920025..6326cfd 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -2,7 +2,7 @@
<view class="page-container">
<!-- 澶撮儴瀵艰埅 -->
<u-navbar
- title="Zoneyung 宸ヤ綔鍙�"
+ :title="$t('index.workplace')"
:fixed="true"
:placeholder="true"
bgColor="#ffffff"
@@ -13,8 +13,8 @@
<!-- 娆㈣繋淇℃伅 / 鐢ㄦ埛淇℃伅 -->
<view class="welcome-box">
<view class="welcome-info">
- <text class="greeting">娆㈣繋鍥炴潵</text>
- <text class="date-text">涓壃绔嬪簱 WMS 浠撳偍绠$悊绯荤粺</text>
+ <text class="greeting">{{ $t('index.welcomeBack') }}</text>
+ <text class="date-text">{{ $t('index.systemName') }}</text>
</view>
<view class="welcome-avatar">
<!-- 鍙浛鎹负鐪熷疄澶村儚 -->
@@ -99,7 +99,7 @@
<view class="category-header">
<view class="category-title-wrapper">
<view class="title-indicator"></view>
- <text class="category-title">鍏朵粬鎿嶄綔</text>
+ <text class="category-title">{{ $t('category.other') }}</text>
</view>
</view>
<view class="category-body">
@@ -169,7 +169,7 @@
<!-- 搴曢儴鐗堟潈 -->
<view class="footer">
<text class="footer-text">
- copyright 漏 2022 娴欐睙涓壃绔嬪簱鏈夐檺鍏徃 all rights reserved.
+ {{ $t('index.copyright') }}
</text>
</view>
<u-toast ref="uToast"></u-toast>
@@ -191,42 +191,42 @@
// 榛樿鑿滃崟鏁版嵁锛堢敤浜庡悗绔棤杩斿洖鏃讹級
elements2: [
{
- title: '缁勬墭',
+ title: this.$t('index.pakin'),
name: 'pakin',
color: 'cyan',
cuIcon: 'pullup',
url: '/InManagement/ContainerBinding/Container_Binding'
},
{
- title: '璁㈠崟鍏ュ簱',
+ title: this.$t('index.orderPakin'),
name: 'orderPakin',
color: 'purple',
cuIcon: '',
url: '/order/orderList'
},
{
- title: 'AGV瀹瑰櫒鍏ュ簱',
+ title: this.$t('index.agv_start'),
name: 'agv_start',
color: 'blue',
cuIcon: '',
url: '/AGV/agv_start'
},
{
- title: 'AGV瀹瑰櫒鍥炲簱',
+ title: this.$t('index.agv_back'),
name: 'agv_back',
color: 'orange',
cuIcon: '',
url: '/AGV/agv_back'
},
{
- title: '搴撳瓨鏌ヨ',
+ title: this.$t('index.stockQuery'),
name: 'stockQuery',
color: 'green',
cuIcon: '',
url: '/stock/stockQuery'
},
{
- title: '閫�鍑虹櫥褰�',
+ title: this.$t('index.logOut'),
name: 'logOut',
color: 'grey',
cuIcon: 'exit',
@@ -269,21 +269,21 @@
categoryConfig: [
{
key: 'pakin_category',
- name: '鍏ュ簱绠$悊',
+ name: this.$t('category.inbound'),
color: 'cyan',
icon: 'upload',
menuNames: ['pakin', 'orderPakin']
},
{
key: 'agv_category',
- name: 'AGV绠$悊',
+ name: this.$t('category.agv'),
color: 'blue',
icon: 'navigate',
menuNames: ['agv_start', 'agv_back']
},
{
key: 'stock_category',
- name: '搴撳瓨绠$悊',
+ name: this.$t('category.stock'),
color: 'green',
icon: 'search',
menuNames: ['stockQuery']
@@ -407,7 +407,7 @@
}
this.elements.push({
- title: '閫�鍑虹櫥褰�',
+ title: this.$t('index.logOut'),
name: 'logOut',
color: 'grey',
cuIcon: 'exit',
@@ -425,7 +425,7 @@
if (errCode === 403) {
uni.showToast({
- title: errMsg || '鏃犳潈闄愭垨鐧诲綍杩囨湡',
+ title: errMsg || this.$t('index.noAuth'),
icon: 'none',
position: 'top'
})
diff --git a/pages/mat/matSelected.vue b/pages/mat/matSelected.vue
index 8360dcd..fa33cbc 100644
--- a/pages/mat/matSelected.vue
+++ b/pages/mat/matSelected.vue
@@ -2,7 +2,7 @@
<view class="page-container">
<!-- 澶撮儴瀵艰埅 -->
<u-navbar
- title="鍟嗗搧淇℃伅"
+ :title="$t('matSelected.title')"
:fixed="true"
:placeholder="true"
bgColor="#ffffff"
@@ -19,7 +19,7 @@
size="24"
color="#409eff"
></u-icon>
- <text class="panel-title">鐗╂枡璇︽儏</text>
+ <text class="panel-title">{{ $t('matSelected.matDetail') }}</text>
</view>
<u--form
@@ -27,39 +27,39 @@
labelWidth="80"
>
<u-form-item
- label="鍟嗗搧缂栫爜"
+ :label="$t('matSelected.matCode')"
borderBottom
>
<text class="value-text code">{{ mat.matnr }}</text>
</u-form-item>
<u-form-item
- label="鍟嗗搧鍚嶇О"
+ :label="$t('matSelected.matName')"
borderBottom
>
<text class="value-text name">{{ mat.maktx }}</text>
</u-form-item>
<u-form-item
- label="瑙勬牸"
+ :label="$t('matSelected.spec')"
borderBottom
>
<text class="value-text">{{ mat.specs || '-' }}</text>
</u-form-item>
<u-form-item
- label="鎵瑰彿"
+ :label="$t('matSelected.batch')"
borderBottom
>
<u--input
v-model="mat.batch"
- placeholder="璇疯緭鍏ユ壒鍙�"
+ :placeholder="$t('matSelected.inputBatch')"
border="none"
clearable
></u--input>
</u-form-item>
- <u-form-item label="鏁伴噺">
+ <u-form-item :label="$t('matSelected.qty')">
<u-number-box
v-model="mat.anfme"
:max="99999999"
@@ -75,7 +75,7 @@
<view class="bottom-bar">
<u-button
type="primary"
- text="纭鎻愬彇"
+ :text="$t('matSelected.confirmExtract')"
icon="checkbox-mark"
@click="back"
customStyle="width: 100%; border-radius: 40rpx;"
@@ -119,7 +119,7 @@
},
back() {
if (this.mat.anfme === 0) {
- this.$showToast({ type: 'error', message: '璇疯緭鍏ユ暟閲�' })
+ this.$showToast({ type: 'error', message: this.$t('toast.inputQty') })
return
}
this.getOpenerEventChannel().emit('matList', { data: this.mat })
diff --git a/unflatten.js b/unflatten.js
new file mode 100644
index 0000000..b281101
--- /dev/null
+++ b/unflatten.js
@@ -0,0 +1,55 @@
+const fs = require('fs');
+const path = require('path');
+
+function unflatten(data) {
+ const result = {};
+
+ // Sort keys so that base objects are created before properties are added
+ const keys = Object.keys(data);
+
+ for (const key of keys) {
+ const value = data[key];
+
+ // If it's already an object, merge its keys
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
+ if (!result[key] || typeof result[key] !== 'object') {
+ result[key] = result[key] || {};
+ }
+ Object.assign(result[key], value);
+ } else {
+ // Split by dot and nest
+ const parts = key.split('.');
+ let current = result;
+
+ for (let i = 0; i < parts.length - 1; i++) {
+ const part = parts[i];
+ if (!current[part] || typeof current[part] !== 'object') {
+ current[part] = {};
+ }
+ current = current[part];
+ }
+ current[parts[parts.length - 1]] = value;
+ }
+ }
+
+ return result;
+}
+
+const dir = path.join(__dirname, 'locale');
+const files = fs.readdirSync(dir).filter(f => f.endsWith('.json'));
+
+files.forEach(file => {
+ const filePath = path.join(dir, file);
+ let content = fs.readFileSync(filePath, 'utf8');
+ let data;
+ try {
+ data = JSON.parse(content);
+ } catch (e) {
+ console.log(`Error parsing ${file}`);
+ return;
+ }
+
+ const nestedData = unflatten(data);
+ fs.writeFileSync(filePath, JSON.stringify(nestedData, null, 2), 'utf8');
+ console.log(`Updated ${file}`);
+});
diff --git a/update_locales.js b/update_locales.js
new file mode 100644
index 0000000..d127d60
--- /dev/null
+++ b/update_locales.js
@@ -0,0 +1,138 @@
+const fs = require('fs');
+
+const zhHans = {
+ 'index.workplace': 'Zoneyung 宸ヤ綔鍙�',
+ 'index.welcomeBack': '娆㈣繋鍥炴潵',
+ 'index.systemName': '涓壃绔嬪簱 WMS 浠撳偍绠$悊绯荤粺',
+ 'category.inbound': '鍏ュ簱绠$悊',
+ 'category.agv': 'AGV绠$悊',
+ 'category.stock': '搴撳瓨绠$悊',
+ 'category.other': '鍏朵粬鎿嶄綔',
+ 'index.pakin': '缁勬墭',
+ 'index.orderPakin': '璁㈠崟鍏ュ簱',
+ 'index.agv_start': 'AGV瀹瑰櫒鍏ュ簱',
+ 'index.agv_back': 'AGV瀹瑰櫒鍥炲簱',
+ 'index.stockQuery': '搴撳瓨鏌ヨ',
+ 'index.logOut': '閫�鍑虹櫥褰�',
+ 'index.copyright': 'copyright 漏 2022 娴欐睙涓壃绔嬪簱鏈夐檺鍏徃 all rights reserved.',
+ 'index.noAuth': '鏃犳潈闄愭垨鐧诲綍杩囨湡',
+ 'container.title': '缁勬墭',
+ 'container.palletCode': '鎵樼洏鐮�',
+ 'container.matCode': '鐗╂枡鐮�',
+ 'container.scanPallet': '鎵爜 / 杈撳叆鎵樼洏鐮�',
+ 'container.scanMat': '鎵爜 / 杈撳叆鐗╂枡鐮�',
+ 'container.matList': '鍟嗗搧鍒楄〃',
+ 'container.matName': '鍝佸悕',
+ 'container.matSpec': '瑙勬牸',
+ 'container.matBatch': '鎵瑰彿',
+ 'container.matQty': '鏁伴噺',
+ 'container.modify': '淇敼',
+ 'container.remove': '绉婚櫎',
+ 'container.reset': '閲嶇疆',
+ 'container.confirmComb': '纭缁勬墭',
+ 'container.emptyList': '鏆傛棤鍟嗗搧锛岃鎵弿鐗╂枡鐮佹坊鍔�',
+ 'container.modifyInfo': '淇敼淇℃伅',
+ 'container.code': '缂栫爜',
+ 'container.confirmRemove': '纭绉婚櫎',
+ 'container.removeMsg': '鏄惁绉婚櫎璇ュ晢鍝侊紵',
+ 'container.confirmReset': '纭閲嶇疆',
+ 'container.resetMsg': '鏄惁娓呯┖鎵�鏈夊晢鍝侊紵',
+ 'container.combMsg': '纭灏嗗晢鍝佺粍鎵樺叆搴擄紵',
+ 'toast.palletError': '鎵樼洏鐮佹湁璇閲嶈瘯',
+ 'toast.queryFail': '鏌ヨ澶辫触',
+ 'toast.modifySuccess': '淇敼鎴愬姛',
+ 'toast.removeSuccess': '绉婚櫎鎴愬姛',
+ 'toast.scanPalletCode': '璇锋壂鎻忔墭鐩樻潯鐮�',
+ 'toast.qtyNotZero': '缁勬墭鏁伴噺涓嶈兘涓�0',
+ 'toast.qtyNotZeroMat': '{0}缁勬墭鏁伴噺涓嶈兘涓�0',
+ 'toast.combSuccess': '缁勬墭鎴愬姛',
+ 'toast.combFail': '缁勬墭澶辫触',
+ 'toast.resetComplete': '閲嶇疆瀹屾垚',
+ 'matSelected.title': '鍟嗗搧淇℃伅',
+ 'matSelected.matDetail': '鐗╂枡璇︽儏',
+ 'matSelected.matCode': '鍟嗗搧缂栫爜',
+ 'matSelected.matName': '鍟嗗搧鍚嶇О',
+ 'matSelected.spec': '瑙勬牸',
+ 'matSelected.batch': '鎵瑰彿',
+ 'matSelected.inputBatch': '璇疯緭鍏ユ壒鍙�',
+ 'matSelected.qty': '鏁伴噺',
+ 'matSelected.confirmExtract': '纭鎻愬彇',
+ 'toast.inputQty': '璇疯緭鍏ユ暟閲�'
+};
+
+const en = {
+ 'index.workplace': 'Zoneyung Workspace',
+ 'index.welcomeBack': 'Welcome Back',
+ 'index.systemName': 'Zoneyung AS/RS WMS System',
+ 'category.inbound': 'Inbound Management',
+ 'category.agv': 'AGV Management',
+ 'category.stock': 'Stock Management',
+ 'category.other': 'Other Operations',
+ 'index.pakin': 'Palletizing',
+ 'index.orderPakin': 'Order Inbound',
+ 'index.agv_start': 'AGV Container Inbound',
+ 'index.agv_back': 'AGV Container Return',
+ 'index.stockQuery': 'Stock Query',
+ 'index.logOut': 'Logout',
+ 'index.copyright': 'Copyright 漏 2022 Zhejiang Zoneyung AS/RS Co., Ltd. All rights reserved.',
+ 'index.noAuth': 'No permissions or login expired',
+ 'container.title': 'Palletizing',
+ 'container.palletCode': 'Pallet Code',
+ 'container.matCode': 'Material Code',
+ 'container.scanPallet': 'Scan / Enter Pallet Code',
+ 'container.scanMat': 'Scan / Enter Material Code',
+ 'container.matList': 'Material List',
+ 'container.matName': 'Name',
+ 'container.matSpec': 'Spec',
+ 'container.matBatch': 'Batch',
+ 'container.matQty': 'Quantity',
+ 'container.modify': 'Modify',
+ 'container.remove': 'Remove',
+ 'container.reset': 'Reset',
+ 'container.confirmComb': 'Confirm Combin.',
+ 'container.emptyList': 'No materials, please scan material code to add',
+ 'container.modifyInfo': 'Modify Info',
+ 'container.code': 'Code',
+ 'container.confirmRemove': 'Confirm Remove',
+ 'container.removeMsg': 'Remove this material?',
+ 'container.confirmReset': 'Confirm Reset',
+ 'container.resetMsg': 'Clear all materials?',
+ 'container.combMsg': 'Confirm to palletize and inbound?',
+ 'toast.palletError': 'Pallet code error, please try again',
+ 'toast.queryFail': 'Query failed',
+ 'toast.modifySuccess': 'Modification successful',
+ 'toast.removeSuccess': 'Removal successful',
+ 'toast.scanPalletCode': 'Please scan pallet code',
+ 'toast.qtyNotZero': 'Palletizing quantity cannot be 0',
+ 'toast.qtyNotZeroMat': '{0} palletizing quantity cannot be 0',
+ 'toast.combSuccess': 'Palletizing successful',
+ 'toast.combFail': 'Palletizing failed',
+ 'toast.resetComplete': 'Reset complete',
+ 'matSelected.title': 'Material Info',
+ 'matSelected.matDetail': 'Material Details',
+ 'matSelected.matCode': 'Material Code',
+ 'matSelected.matName': 'Material Name',
+ 'matSelected.spec': 'Spec',
+ 'matSelected.batch': 'Batch',
+ 'matSelected.inputBatch': 'Please enter batch',
+ 'matSelected.qty': 'Quantity',
+ 'matSelected.confirmExtract': 'Confirm Extract',
+ 'toast.inputQty': 'Please enter quantity'
+};
+
+const zhHant = Object.assign({}, zhHans);
+const ja = Object.assign({}, zhHans);
+
+const files = [
+ { path: 'locale/zh-Hans.json', extract: zhHans },
+ { path: 'locale/en.json', extract: en },
+ { path: 'locale/zh-Hant.json', extract: zhHant },
+ { path: 'locale/ja.json', extract: ja }
+];
+
+files.forEach(f => {
+ const content = JSON.parse(fs.readFileSync(f.path, 'utf8'));
+ Object.assign(content, f.extract);
+ fs.writeFileSync(f.path, JSON.stringify(content, null, 2), 'utf8');
+});
+console.log('Update success');
--
Gitblit v1.9.1