diff --git a/locale/en-1.json b/locale/en-1.json
new file mode 100644
index 0000000..c509330
--- /dev/null
+++ b/locale/en-1.json
@@ -0,0 +1,33 @@
+{
+ "button.check": "Check",
+ "button.abnormal": "Abnormal",
+ "button.normal": "Normal",
+ "filter.bill-code": "Bill code",
+ "filter.warehouse": "Warehouse",
+ "filter.woodenbox": "Woodenbox",
+ "filter.countednum": "Checknum",
+ "filter.uncountednum": "Unchecknum",
+ "grid.bill-code": "Bill code",
+ "grid.bill-type": "Bill type",
+ "grid.warehouse-name": "Warehouse name",
+ "grid.dtl-number": "Detail number",
+ "grid.status": "Status",
+ "grid.is-error": "Is error",
+ "grid.create-man": "Create man",
+ "grid.create-time": "Create time",
+ "grid.confirm-man": "Confirm man",
+ "grid.confirm-time": "Confirm time",
+ "grid.storagevehicle-code": "Storagevehicle code",
+ "grid.weight": "Weight",
+ "grid.check-area": "Check area",
+ "grid.check-point": "Check point",
+ "grid.material-code": "Material code",
+ "grid.material-name": "Material name",
+ "grid.mark": "Mark",
+ "grid.rolls-num": "Rolls num",
+ "grid.check-result": "Check result",
+ "grid.check-man": "Check man",
+ "grid.check-time": "Check time",
+ "grid.expected-end-time": "Expected end time",
+ "grid.remain-time": "Remain time"
+}
\ No newline at end of file
diff --git a/locale/en.json b/locale/en.json
new file mode 100644
index 0000000..fa9d9c7
--- /dev/null
+++ b/locale/en.json
@@ -0,0 +1,177 @@
+{
+ "utils.loading": "Loading...",
+ "uni.dataSelect.placeholder": "Please select",
+ "uni.dataSelect.emptyTips": "No options available",
+ "utils.read-more": "Read more",
+ "utils.no-more": "No more",
+ "button.confirm": "OK",
+ "button.cancel": "Cancel",
+ "button.search": "Query",
+ "button.confirm-receipt": "Confirm receipt",
+ "button.confirm-outbound": "Confirm outbound",
+ "button.empty-shaft-return": "Empty shaft return",
+ "button.full-shaft-return": "Full shaft return",
+ "button.through-shaft-confirm": "Through shaft confirm",
+ "button.pull-shaft-confirm": "Pull shaft confirm",
+ "button.overlap-shaft-confirm": "Overlap shaft confirm",
+ "button.manual-call": "Manual call",
+ "button.call": "Call",
+ "button.vehicle-lateral-movement": "Vehicle lateral movement",
+ "button.call-vehicle": "Call vehicle",
+ "button.delivery-check": "Delivery check",
+ "button.delivery-confirm": "Delivery confirm",
+ "button.vehicle-return": "Vehicle return",
+ "button.upload-empty-shaft": "Upload empty shaft",
+ "button.scrap-foil-roll-down": "Scrap foil roll down",
+ "button.outbound-delivery": "Outbound delivery",
+ "button.storage-settings": "Storage settings",
+ "button.storage-confirm": "Storage confirm",
+ "button.complement": "Complement",
+ "button.labeling": "Labeling",
+ "button.binding": "Binding",
+ "button.print": "Print",
+ "button.force-complete": "Force Complete",
+ "button.reissue": "Reissue",
+ "login.username": "User name",
+ "login.password": "Password",
+ "login.remember": "Remember username",
+ "login.settings": "Settings",
+ "login.upgrade": "Upgrade version",
+ "login.login": "Login",
+ "login.text1": "Welcome to",
+ "login.text2": "Hailiang Copper Foil Handheld System!",
+ "setting.language": "language",
+ "setting.server": "server address",
+ "setting.refresh": "Refresh time",
+ "setting.customer-label-printing": "Label printing",
+ "setting.language-change-confirm": "Applying this setting will restart the app",
+ "upgrade.new-version": "Discovering new versions",
+ "upgrade.text1": "Hailiang Copper Foil has a new version, upgrade to the latest version, and enjoy richer, more stable, and faster functions and experiences!",
+ "upgrade.text2": "Installation package download in progress, please wait",
+ "upgrade.upgrade-now": "Upgrade now",
+ "home.title": "home page",
+ "home.message": "Welcome to the copper foil handheld system!",
+ "home.exit": "Exit",
+ "menu.production-management": "Production management",
+ "menu.production-progress-of-raw-foil": "Production progress of raw foil",
+ "menu.foil-production-process": "Foil production process",
+ "menu.baking-process": "Baking process",
+ "menu.manual-baking": "Manual baking",
+ "menu.semi-finished-product-management": "Semi-finished product management",
+ "menu.semi-finished-product-warehousing": "Semi-finished product warehousing",
+ "menu.semi-finished-products-outbound": "Semi finished products outbound",
+ "menu.splitting-management": "Splitting management",
+ "menu.cutting-and-feeding": "Cutting and feeding",
+ "menu.hollow-shaft-sleeve": "Hollow shaft sleeve",
+ "menu.empty-shaft-delivery": "Empty shaft delivery",
+ "menu.empty-shaft-entry-station": "Empty shaft entry station",
+ "menu.subroll-outbound": "Subroll Outbound",
+ "menu.point-management": "Point management",
+ "menu.abnormal-outbound-unlocking": "Abnormal outbound unlocking",
+ "menu.paper-frp-management": "Paper tube/FRP tube management",
+ "menu.air-traffic-control-warehousing": "Air traffic control warehousing",
+ "menu.air-traffic-control-outbound": "Air traffic control outbound",
+ "menu.finished-product-management": "Finished product management",
+ "menu.production-warehousing": "Production warehousing",
+ "menu.return-to-warehouse": "Return to warehouse",
+ "menu.scrap-storage": "Scrap storage",
+ "menu.split-receipt": "Split receipt",
+ "menu.production-area-shipment": "Production area shipment",
+ "menu.virtual-zone-shipping": "Virtual Zone Shipping",
+ "menu.labeling-and-bundling": "Labeling and bundling",
+ "menu.in-stock-management": "In stock management",
+ "menu.inventory-management": "Inventory management",
+ "menu.vehicle-management": "Vehicle management",
+ "menu.empty-vehicle-entering-the-warehouse": "Empty vehicle entering the warehouse",
+ "menu.empty-vehicle-leaving-the-warehouse": "Empty vehicle leaving the warehouse",
+ "menu.print-management": "Print management",
+ "menu.customer-label-printing": "Customer label printing",
+ "menu.scheduling-management": "Scheduling management",
+ "menu.task-management": "Task management",
+ "menu.rgv-status-query": "RGV status query",
+ "filter.area": "Area",
+ "filter.point": "Point",
+ "filter.mother-roll": "Mother roll",
+ "filter.state": "State",
+ "filter.starting-point": "Starting point",
+ "filter.finishing-point": "Finishing point",
+ "filter.device": "Device",
+ "filter.material": "Material",
+ "filter.quantity": "Quantity",
+ "filter.air-shaft": "Air shaft",
+ "filter.vehicle-code": "Vehicle code",
+ "filter.last-roll-down": "Last roll down",
+ "filter.cache-point": "Cache point",
+ "filter.wooden-box-code": "Wooden box code",
+ "filter.virtual-library": "Virtual library",
+ "filter.remark": "Remark",
+ "filter.document-type": "Document type",
+ "filter.keywords": "Keywords",
+ "filter.warehouse-area": "Warehouse area",
+ "grid.number": "No.",
+ "grid.select": "Select",
+ "grid.work-order-number": "Work order number",
+ "grid.mother-roll-number": "Mother roll number",
+ "grid.sub-roll-number": "Sub roll number",
+ "grid.start-time": "Start time",
+ "grid.end-time": "End time",
+ "grid.machine-code": "Machine code",
+ "grid.point-code": "Point code",
+ "grid.product-code": "Product code",
+ "grid.theoretical-length": "Theoretical length",
+ "grid.total-weight": "Total weight",
+ "grid.weight": "Weight",
+ "grid.total-net-weight": "total net weight",
+ "grid.net-weight": "Net weight",
+ "grid.details": "Details",
+ "grid.customer-code": "Customer code",
+ "grid.customer-name": "Customer name",
+ "grid.delivery-note": "Delivery note",
+ "grid.car-number": "Car number",
+ "grid.production-area": "Production area",
+ "grid.update-time": "Update time",
+ "grid.product-description": "Product description",
+ "grid.in-oven-time": "In oven time",
+ "grid.out-oven-time": "Out oven time",
+ "grid.is-it-baked": "Is it baked",
+ "grid.split-group": "Split group",
+ "grid.production-sequence": "Production sequence",
+ "grid.date-of-manufacture": "Date of manufacture",
+ "grid.order-number": "Order No.",
+ "grid.paper-FRP-tube": "Paper tube/FRP tube",
+ "grid.paper-tube-material-code": "Paper tube material code",
+ "grid.paper-tube-material-description": "Paper tube material description",
+ "grid.paper-tube-specifications": "Paper tube specifications",
+ "grid.FRP-pipe-material-code": "FRP pipe material code",
+ "grid.FRP-pipe-material-description": "FRP pipe material description",
+ "grid.FRP-pipe-specifications": "FRP pipe specifications",
+ "grid.place": "Place",
+ "grid.delivery-completed": "Delivery completed",
+ "grid.material-name": "Material name",
+ "grid.material-code": "Material code",
+ "grid.volume-number": "Volume number",
+ "grid.gross-weight-of-wooden-box": "Gross weight of wooden box",
+ "grid.sales-order-and-line-number": "Sales order and line number",
+ "grid.specifications": "Specifications",
+ "grid.warehousing-date": "Warehousing date",
+ "grid.task-number": "Task number",
+ "grid.pickup-point": "Pickup point",
+ "grid.release-point": "Release point",
+ "grid.task-type": "Task type",
+ "grid.generation-time": "Generation time",
+ "grid.device-code": "Device code",
+ "grid.device-name": "Device name",
+ "grid.coordinate": "Coordinate",
+ "grid.quantity-of-electricity": "quantity of electricity",
+ "grid.fault-name": "Fault name",
+ "grid.floor": "Floor",
+ "grid.is-stock": "Is there stock available",
+ "toast.point-not-empty": "The point cannot be empty",
+ "toast.select-cache-point": "Please select a cache point",
+ "toast.select-device": "Please select a device",
+ "toast.select-row": "Please select a row",
+ "toast.device-not-empty": "The device cannot be empty",
+ "toast.material-not-empty": "Material cannot be empty",
+ "toast.quantity-not-empty": "Quantity cannot be empty",
+ "toast.scan-wooden-box-code": "Please scan the wooden box code"
+}
\ No newline at end of file
diff --git a/locale/id-1.json b/locale/id-1.json
new file mode 100644
index 0000000..8e060d7
--- /dev/null
+++ b/locale/id-1.json
@@ -0,0 +1,31 @@
+{
+ "button.check": "Inventar",
+ "button.abnormal": "Abnormal",
+ "button.normal": "Normal",
+ "filter.bill-code": "Kode dokumen",
+ "filter.warehouse": "gudang",
+ "filter.woodenbox": "Kotak kayu",
+ "filter.countednum": "Jumlah cakera",
+ "filter.uncountednum": "Titik tidak terhitung",
+ "grid.bill-code": "Nomor dokumen",
+ "grid.bill-type": "Jenis dokumen",
+ "grid.warehouse-name": "Nama gudang",
+ "grid.dtl-number": "Rincian",
+ "grid.status": "keadaan",
+ "grid.is-error": "Apakah itu abnormal",
+ "grid.create-man": "Pencipta",
+ "grid.create-time": "Waktu penciptaan",
+ "grid.confirm-man": "Dikonfirmasi oleh",
+ "grid.confirm-time": "Konfirmasi waktu",
+ "grid.storagevehicle-code": "Nomor kotak",
+ "grid.weight": "Berat jaring",
+ "grid.check-area": "Area penyimpanan inventaris",
+ "grid.check-point": "Lokasi penyimpanan inventaris",
+ "grid.material-code": "Kode materi",
+ "grid.material-name": "Nama Material",
+ "grid.mark": "Catatan",
+ "grid.rolls-num": "Jumlah gulungan",
+ "grid.check-result": "Hasil inventaris",
+ "grid.check-man": "Orang inventaris",
+ "grid.check-time": "Waktu inventaris"
+}
\ No newline at end of file
diff --git a/locale/id.json b/locale/id.json
new file mode 100644
index 0000000..0ea29ec
--- /dev/null
+++ b/locale/id.json
@@ -0,0 +1,177 @@
+{
+ "utils.loading": "Memuatkan...",
+ "uni.dataSelect.placeholder": "Silakan pilih",
+ "uni.dataSelect.emptyTips": "Tidak ada pilihan tersedia",
+ "utils.read-more": "Lihat lebih",
+ "utils.no-more": "Tidak lagi",
+ "button.confirm": "OK",
+ "button.cancel": "Batalkan",
+ "button.search": "pertanyaan",
+ "button.confirm-receipt": "Konfirmasi penerimaan",
+ "button.confirm-outbound": "Konfirmasi keluar",
+ "button.empty-shaft-return": "Kembali shaft kosong",
+ "button.full-shaft-return": "Paksi penuh kembali",
+ "button.through-shaft-confirm": "Melalui konfirmasi shaft",
+ "button.pull-shaft-confirm": "Pull shaft konfirmasi",
+ "button.overlap-shaft-confirm": "Konfirmasi paksi Overlap",
+ "button.manual-call": "Panggilan manual",
+ "button.call": "Panggilan",
+ "button.vehicle-lateral-movement": "Gerakan lateral kendaraan",
+ "button.call-vehicle": "Panggil kendaraan",
+ "button.delivery-check": "Verifikasi pengiriman",
+ "button.delivery-confirm": "Konfirmasi pengiriman",
+ "button.vehicle-return": "Kembali kendaraan",
+ "button.upload-empty-shaft": "Memuat naik shaft kosong",
+ "button.scrap-foil-roll-down": "Scrap foil roll down",
+ "button.outbound-delivery": "Pengiriman keluar",
+ "button.storage-settings": "Pengaturan penyimpanan",
+ "button.storage-confirm": "Konfirmasi penerimaan",
+ "button.complement": "Tambahan",
+ "button.labeling": "Label",
+ "button.binding": "Binding",
+ "button.print": "Mencetak",
+ "button.force-complete": "Pelengkapan terpaksa",
+ "button.reissue": "Keluaran ulang",
+ "login.username": "Nama pengguna",
+ "login.password": "Sandi",
+ "login.remember": "Ingat nama pengguna",
+ "login.settings": "Pengaturan",
+ "login.upgrade": "Versi terbaik",
+ "login.login": "Login",
+ "login.text1": "Selamat datang di",
+ "login.text2": "Hailiang Copper Foil Handheld System!",
+ "setting.language": "Bahasa",
+ "setting.server": "Alamat server",
+ "setting.refresh": "Waktu segar",
+ "setting.customer-label-printing": "Label pelanggan",
+ "setting.language-change-confirm": "Menggunakan pengaturan ini akan memulai ulang aplikasi",
+ "upgrade.new-version": "Menemukan versi baru",
+ "upgrade.text1": "Hailiang Copper Foil memiliki versi baru, meningkatkan ke versi terbaru, dan menikmati fungsi dan pengalaman yang lebih kaya, lebih stabil, dan lebih cepat!",
+ "upgrade.text2": "Mengunduh paket pemasangan dalam proses, silakan tunggu",
+ "upgrade.upgrade-now": "Meningkatkan sekarang",
+ "home.title": "Halaman rumah",
+ "home.message": "Selamat datang di sistem foil tembaga!",
+ "home.exit": "Keluar",
+ "menu.production-management": "Manajemen produksi",
+ "menu.production-progress-of-raw-foil": "Kemajuan produksi dari folio mentah",
+ "menu.foil-production-process": "Proses produksi folium",
+ "menu.baking-process": "Proses bakar",
+ "menu.manual-baking": "Pembakaran manual",
+ "menu.semi-finished-product-management": "Manajemen produk semi-selesai",
+ "menu.semi-finished-product-warehousing": "Penjagaan produk semi-selesai",
+ "menu.semi-finished-products-outbound": "Semi produk selesai keluar",
+ "menu.splitting-management": "Manajemen pembagian",
+ "menu.cutting-and-feeding": "Memotong dan memberi makan",
+ "menu.hollow-shaft-sleeve": "Lengan peluru kosong",
+ "menu.empty-shaft-delivery": "Pengiriman shaft kosong",
+ "menu.empty-shaft-entry-station": "Stasiun masuk shaft kosong",
+ "menu.subroll-outbound": "Subroll Keluar",
+ "menu.point-management": "Manajemen titik",
+ "menu.abnormal-outbound-unlocking": "Pembukaan keluar tidak normal",
+ "menu.paper-frp-management": "Manajemen tabung kertas/FRP",
+ "menu.air-traffic-control-warehousing": "Penjagaan kendali lalu lintas udara",
+ "menu.air-traffic-control-outbound": "Kontrol lalu lintas udara keluar",
+ "menu.finished-product-management": "Manajemen produk selesai",
+ "menu.production-warehousing": "Gudang produksi",
+ "menu.return-to-warehouse": "Kembali ke gudang",
+ "menu.scrap-storage": "Skrap penyimpanan",
+ "menu.split-receipt": "Pembahagian menerima",
+ "menu.production-area-shipment": "Pengiriman daerah produksi",
+ "menu.virtual-zone-shipping": "Pengiriman Zona Virtual",
+ "menu.labeling-and-bundling": "Labeling dan bundling",
+ "menu.in-stock-management": "Dalam manajemen saham",
+ "menu.inventory-management": "Manajemen inventori",
+ "menu.vehicle-management": "Manajemen kendaraan",
+ "menu.empty-vehicle-entering-the-warehouse": "Kendaraan kosong masuk ke gudang",
+ "menu.empty-vehicle-leaving-the-warehouse": "Kendaraan kosong meninggalkan gudang",
+ "menu.print-management": "Manajemen Cetak",
+ "menu.customer-label-printing": "Cetakan label pelanggan",
+ "menu.scheduling-management": "Manajemen jadwal",
+ "menu.task-management": "Manajemen tugas",
+ "menu.rgv-status-query": "Pertanyaan status RGV",
+ "filter.area": "Daerah",
+ "grid.number": "Nomor",
+ "grid.select": "Pilihan",
+ "filter.keywords": "Kata kunci",
+ "filter.warehouse-area": "Daerah gudang",
+ "filter.point": "Posisi titik",
+ "filter.mother-roll": "Mother roll",
+ "filter.state": "Keadaan",
+ "filter.starting-point": "Titik awal",
+ "filter.finishing-point": "Titik akhir",
+ "filter.device": "Peralatan",
+ "filter.material": "Material",
+ "filter.quantity": "Jumlah",
+ "filter.air-shaft": "Paksi inflasi",
+ "filter.vehicle-code": "Kode kendaraan",
+ "filter.last-roll-down": "Roll terakhir turun",
+ "filter.cache-point": "Titik Cache",
+ "filter.wooden-box-code": "Kode kotak kayu",
+ "filter.virtual-library": "Pustaka Virtual",
+ "filter.remark": "komentar",
+ "filter.document-type": "Jenis dokumen",
+ "grid.work-order-number": "Nomor urutan kerja",
+ "grid.mother-roll-number": "Nomor roll ibu",
+ "grid.sub-roll-number": "Nomor sub roll",
+ "grid.start-time": "Waktu awal",
+ "grid.end-time": "Waktu akhir",
+ "grid.machine-code": "Koding mesin",
+ "grid.point-code": "Kode titik",
+ "grid.product-code": "Kode produk",
+ "grid.theoretical-length": "Panjang teori",
+ "grid.total-weight": "Total berat",
+ "grid.weight": "Berat",
+ "grid.total-net-weight": "Total berat neto",
+ "grid.net-weight": "Berat jaring",
+ "grid.details": "Rincian",
+ "grid.customer-code": "Kode pelanggan",
+ "grid.customer-name": "Nama Pelanggan",
+ "grid.delivery-note": "Catatan pengiriman",
+ "grid.car-number": "Nomor mobil",
+ "grid.production-area": "Area produksi",
+ "grid.update-time": "Waktu kemaskini",
+ "grid.product-description": "Deskripsi Produk",
+ "grid.in-oven-time": "Waktunya memasuki oven",
+ "grid.out-oven-time": "Waktunya meninggalkan oven",
+ "grid.is-it-baked": "Apakah sudah dipanggang",
+ "grid.split-group": "Grup pembagian",
+ "grid.production-sequence": "Jujukan produksi",
+ "grid.date-of-manufacture": "Tarikh produksi",
+ "grid.order-number": "Nomor perintah",
+ "grid.paper-FRP-tube": "Tuba kertas/Tuba FRP",
+ "grid.paper-tube-material-code": "Kode bahan tub kertas",
+ "grid.paper-tube-material-description": "Deskripsi material tabung kertas",
+ "grid.paper-tube-specifications": "Spesifikasi tabung kertas",
+ "grid.FRP-pipe-material-code": "Kode bahan pipa FRP",
+ "grid.FRP-pipe-material-description": "Deskripsi bahan pipa FRP",
+ "grid.FRP-pipe-specifications": "Spesifikasi pipa FRP",
+ "grid.place": "Tempat",
+ "grid.delivery-completed": "Pengiriman selesai",
+ "grid.material-name": "Nama Material",
+ "grid.material-code": "Kode materi",
+ "grid.volume-number": "Jumlah gulungan",
+ "grid.gross-weight-of-wooden-box": "Berat bruto kotak kayu",
+ "grid.sales-order-and-line-number": "Perintah penjualan dan nomor baris",
+ "grid.specifications": "Spesifikasi",
+ "grid.warehousing-date": "Tanggal penyimpanan",
+ "grid.task-number": "Nomor tugas",
+ "grid.pickup-point": "Titik pemilihan",
+ "grid.release-point": "Titik pembebasan",
+ "grid.task-type": "Jenis tugas",
+ "grid.generation-time": "Waktu generasi",
+ "grid.device-code": "Pengkodan peralatan",
+ "grid.device-name": "Nama Peranti",
+ "grid.coordinate": "Koordinat",
+ "grid.quantity-of-electricity": "Tingkat listrik",
+ "grid.fault-name": "Nama salah",
+ "grid.floor": "Lantai",
+ "grid.is-stock": "Apakah ada saham tersedia",
+ "toast.point-not-empty": "Titik tidak dapat kosong",
+ "toast.select-cache-point": "Silakan pilih lokasi cache",
+ "toast.select-device": "Silakan pilih perangkat",
+ "toast.select-row": "Silakan pilih baris",
+ "toast.device-not-empty": "Perangkat tidak dapat kosong",
+ "toast.material-not-empty": "Material tidak dapat kosong",
+ "toast.quantity-not-empty": "Kuantitas tidak dapat kosong",
+ "toast.scan-wooden-box-code": "Silakan imbas kode kotak kayu"
+}
\ No newline at end of file
diff --git a/locale/index.js b/locale/index.js
new file mode 100644
index 0000000..d884449
--- /dev/null
+++ b/locale/index.js
@@ -0,0 +1,27 @@
+
+import en from './en.json'
+import en1 from './en-1.json'
+import zhHans from './zh-Hans.json'
+import zhHans1 from './zh-Hans-1.json'
+import id from './id.json'
+import id1 from './id-1.json'
+const messages = {
+ 'en': Object.assign(en, en1),
+ 'zh-Hans': Object.assign(zhHans, zhHans1),
+ 'id': Object.assign(id, id1)
+}
+
+let i18nConfig = {
+ silentTranslationWarn: true,
+ locale: uni.getLocale(),
+ messages
+}
+
+import Vue from 'vue'
+import VueI18n from 'vue-i18n'
+Vue.use(VueI18n)
+
+const i18n = new VueI18n(i18nConfig)
+
+export default i18n
+
diff --git a/locale/uni-app.en.json b/locale/uni-app.en.json
new file mode 100644
index 0000000..acb9998
--- /dev/null
+++ b/locale/uni-app.en.json
@@ -0,0 +1,36 @@
+{
+ "common": {
+ "uni.app.quit": "Press again to exit the application",
+ "uni.async.error": "Connection to server timeout, click on screen to retry",
+ "uni.showActionSheet.cancel": "Cancel",
+ "uni.showToast.unpaired": "Please note that showToast and hideToast must be paired for use",
+ "uni.showLoading.unpaired": "Please note that showLoading and hideLoading must be paired for use",
+ "uni.showModal.cancel": "Cancel",
+ "uni.showModal.confirm": "Ok",
+ "uni.chooseImage.cancel": "Cancel",
+ "uni.chooseImage.sourceType.album": "Select from album",
+ "uni.chooseImage.sourceType.camera": "Capture",
+ "uni.chooseVideo.cancel": "Cancel",
+ "uni.chooseVideo.sourceType.album": "Select from album",
+ "uni.chooseVideo.sourceType.camera": "Capture",
+ "uni.previewImage.cancel": "Cancel",
+ "uni.previewImage.button.save": "Save image",
+ "uni.previewImage.save.success": "Successfully saved image to album",
+ "uni.previewImage.save.fail": "Saving image to album failed",
+ "uni.setClipboardData.success": "Content copied",
+ "uni.scanCode.title": "Scan Code",
+ "uni.scanCode.album": "Album",
+ "uni.scanCode.fail": "Recognition failed",
+ "uni.scanCode.flash.on": "Tap to illuminate",
+ "uni.scanCode.flash.off": "Tap to close",
+ "uni.startSoterAuthentication.authContent": "Fingerprint recognition in progress...",
+ "uni.picker.done": "Complete",
+ "uni.picker.cancel": "Cancel",
+ "uni.video.danmu": "Barrage",
+ "uni.video.volume": "Volume",
+ "uni.button.feedback.title": "Problem feedback",
+ "uni.button.feedback.send": "Send"
+ },
+ "ios": {},
+ "android": {}
+}
\ No newline at end of file
diff --git a/locale/uni-app.id.json b/locale/uni-app.id.json
new file mode 100644
index 0000000..c0751fc
--- /dev/null
+++ b/locale/uni-app.id.json
@@ -0,0 +1,36 @@
+{
+ "common": {
+ "uni.app.quit": "Tekan lagi untuk keluar dari aplikasi",
+ "uni.async.error": "Sambungan ke timeout server, klik pada layar untuk mencoba lagi",
+ "uni.showActionSheet.cancel": "Batalkan",
+ "uni.showToast.unpaired": "Silakan perhatikan bahwa showToast dan hideToast harus dipasang untuk digunakan",
+ "uni.showLoading.unpaired": "Silakan perhatikan bahwa ShowLoading dan hideLoading harus dipasang untuk digunakan",
+ "uni.showModal.cancel": "Batalkan",
+ "uni.showModal.confirm": "OK",
+ "uni.chooseImage.cancel": "Batalkan",
+ "uni.chooseImage.sourceType.album": "Pilih dari album",
+ "uni.chooseImage.sourceType.camera": "Kamera",
+ "uni.chooseVideo.cancel": "Batalkan",
+ "uni.chooseVideo.sourceType.album": "Pilih dari album",
+ "uni.chooseVideo.sourceType.camera": "Kamera",
+ "uni.previewImage.cancel": "Batalkan",
+ "uni.previewImage.button.save": "Simpan Gambar",
+ "uni.previewImage.save.success": "Gambar yang disimpan dengan sukses ke album",
+ "uni.previewImage.save.fail": "Tidak dapat menyimpan gambar ke album",
+ "uni.setClipboardData.success": "Kandungan disalin",
+ "uni.scanCode.title": "Memindai kode",
+ "uni.scanCode.album": "Daftar Trek",
+ "uni.scanCode.fail": "Pengenalan gagal",
+ "uni.scanCode.flash.on": "Sentuh dipecahkan",
+ "uni.scanCode.flash.off": "Tap untuk ditutup",
+ "uni.startSoterAuthentication.authContent": "Pengenalan sidik jari...",
+ "uni.picker.done": "Selesai",
+ "uni.picker.cancel": "Batalkan",
+ "uni.video.danmu": "Percakapan peluru",
+ "uni.video.volume": "Volume",
+ "uni.button.feedback.title": "Balasan masalah",
+ "uni.button.feedback.send": "kirim"
+ },
+ "ios": {},
+ "android": {}
+}
diff --git a/locale/uni-app.zh-Hans.json b/locale/uni-app.zh-Hans.json
new file mode 100644
index 0000000..78cfef2
--- /dev/null
+++ b/locale/uni-app.zh-Hans.json
@@ -0,0 +1,36 @@
+{
+ "common": {
+ "uni.app.quit": "再按一次退出应用",
+ "uni.async.error": "连接服务器超时,点击屏幕重试",
+ "uni.showActionSheet.cancel": "取消",
+ "uni.showToast.unpaired": "请注意 showToast 与 hideToast 必须配对使用",
+ "uni.showLoading.unpaired": "请注意 showLoading 与 hideLoading 必须配对使用",
+ "uni.showModal.cancel": "取消",
+ "uni.showModal.confirm": "确定",
+ "uni.chooseImage.cancel": "取消",
+ "uni.chooseImage.sourceType.album": "从相册选择",
+ "uni.chooseImage.sourceType.camera": "拍摄",
+ "uni.chooseVideo.cancel": "取消",
+ "uni.chooseVideo.sourceType.album": "从相册选择",
+ "uni.chooseVideo.sourceType.camera": "拍摄",
+ "uni.previewImage.cancel": "取消",
+ "uni.previewImage.button.save": "保存图像",
+ "uni.previewImage.save.success": "保存图像到相册成功",
+ "uni.previewImage.save.fail": "保存图像到相册失败",
+ "uni.setClipboardData.success": "内容已复制",
+ "uni.scanCode.title": "扫码",
+ "uni.scanCode.album": "相册",
+ "uni.scanCode.fail": "识别失败",
+ "uni.scanCode.flash.on": "轻触照亮",
+ "uni.scanCode.flash.off": "轻触关闭",
+ "uni.startSoterAuthentication.authContent": "指纹识别中...",
+ "uni.picker.done": "完成",
+ "uni.picker.cancel": "取消",
+ "uni.video.danmu": "弹幕",
+ "uni.video.volume": "音量",
+ "uni.button.feedback.title": "问题反馈",
+ "uni.button.feedback.send": "发送"
+ },
+ "ios": {},
+ "android": {}
+}
\ No newline at end of file
diff --git a/locale/zh-Hans-1.json b/locale/zh-Hans-1.json
new file mode 100644
index 0000000..c482244
--- /dev/null
+++ b/locale/zh-Hans-1.json
@@ -0,0 +1,33 @@
+{
+ "button.check": "盘点",
+ "button.abnormal": "异常",
+ "button.normal": "正常",
+ "filter.bill-code": "单据编码",
+ "filter.warehouse": "仓库",
+ "filter.woodenbox": "木箱",
+ "filter.countednum": "已盘点数",
+ "filter.uncountednum": "未盘点数",
+ "grid.bill-code": "单据号",
+ "grid.bill-type": "单据类型",
+ "grid.warehouse-name": "仓库名称",
+ "grid.dtl-number": "明细数",
+ "grid.status": "状态",
+ "grid.is-error": "是否异常",
+ "grid.create-man": "创建人",
+ "grid.create-time": "创建时间",
+ "grid.confirm-man": "确认人",
+ "grid.confirm-time": "确认时间",
+ "grid.storagevehicle-code": "箱号",
+ "grid.weight": "净重",
+ "grid.check-area": "盘点库区",
+ "grid.check-point": "盘点货位",
+ "grid.material-code": "物料编码",
+ "grid.material-name": "物料名称",
+ "grid.mark": "备注",
+ "grid.rolls-num": "卷数",
+ "grid.check-result": "盘点结果",
+ "grid.check-man": "盘点人",
+ "grid.check-time": "盘点时间",
+ "grid.expected-end-time": "预计结束时间",
+ "grid.remain-time": "剩余时间(分)"
+}
\ No newline at end of file
diff --git a/locale/zh-Hans.json b/locale/zh-Hans.json
new file mode 100644
index 0000000..6faa0ae
--- /dev/null
+++ b/locale/zh-Hans.json
@@ -0,0 +1,177 @@
+{
+ "utils.loading": "加载中...",
+ "uni.dataSelect.placeholder": "请选择",
+ "uni.dataSelect.emptyTips": "无选项",
+ "utils.read-more": "查看更多",
+ "utils.no-more": "没有更多",
+ "button.confirm": "确定",
+ "button.cancel": "取消",
+ "button.search": "查询",
+ "button.confirm-receipt": "确认入库",
+ "button.confirm-outbound": "确认出库",
+ "button.empty-shaft-return": "空轴送回",
+ "button.full-shaft-return": "满轴送回",
+ "button.through-shaft-confirm": "穿轴确认",
+ "button.pull-shaft-confirm": "拔轴确认",
+ "button.overlap-shaft-confirm": "套轴确认",
+ "button.manual-call": "人工呼叫",
+ "button.call": "呼叫",
+ "button.vehicle-lateral-movement": "载具横移",
+ "button.call-vehicle": "呼叫载具",
+ "button.delivery-check": "配送校验",
+ "button.delivery-confirm": "配送确认",
+ "button.vehicle-return": "载具送回",
+ "button.upload-empty-shaft": "上空轴",
+ "button.scrap-foil-roll-down": "废箔下卷",
+ "button.outbound-delivery": "出站配送",
+ "button.storage-settings": "入库设置",
+ "button.storage-confirm": "入库确认",
+ "button.complement": "补码",
+ "button.labeling": "贴标",
+ "button.binding": "捆扎",
+ "button.print": "打印",
+ "button.force-complete": "强制完成",
+ "button.reissue": "重新下发",
+ "login.username": "用户名",
+ "login.password": "密码",
+ "login.remember": "记住用户名",
+ "login.settings": "设置",
+ "login.upgrade": "升级版本",
+ "login.login": "登录",
+ "login.text1": "欢迎来到",
+ "login.text2": "海亮铜箔手持系统!",
+ "setting.language": "语言",
+ "setting.server": "服务器地址",
+ "setting.refresh": "刷新时间",
+ "setting.customer-label-printing": "客户标签打印",
+ "setting.language-change-confirm": "应用此设置将重启App",
+ "upgrade.new-version": "发现新版本",
+ "upgrade.text1": "海亮铜箔又有新版本了,升级到最新版本,享受更丰富、稳定、快速的功能和体验!",
+ "upgrade.text2": "安装包下载中,请稍后",
+ "upgrade.upgrade-now": "立即升级",
+ "home.title": "首页",
+ "home.message": "欢迎进入铜箔手持系统!",
+ "home.exit": "退出",
+ "menu.production-management": "生产管理",
+ "menu.production-progress-of-raw-foil": "生箔生产进度",
+ "menu.foil-production-process": "生箔工序",
+ "menu.baking-process": "烘烤工序",
+ "menu.manual-baking": "人工烘烤",
+ "menu.semi-finished-product-management": "半成品管理",
+ "menu.semi-finished-product-warehousing": "半成品入库",
+ "menu.semi-finished-products-outbound": "半成品出库",
+ "menu.splitting-management": "分切管理",
+ "menu.cutting-and-feeding": "分切上料",
+ "menu.hollow-shaft-sleeve": "空轴套管",
+ "menu.empty-shaft-delivery": "空轴配送",
+ "menu.empty-shaft-entry-station": "空轴进站",
+ "menu.subroll-outbound": "子卷出站",
+ "menu.point-management": "点位管理",
+ "menu.abnormal-outbound-unlocking": "异常出库解锁",
+ "menu.paper-frp-management": "纸管/FRP管管理",
+ "menu.air-traffic-control-warehousing": "空管入库",
+ "menu.air-traffic-control-outbound": "空管出库",
+ "menu.finished-product-management": "成品管理",
+ "menu.production-warehousing": "生产入库",
+ "menu.return-to-warehouse": "退货入库",
+ "menu.scrap-storage": "报废入库",
+ "menu.split-receipt": "拆分入库",
+ "menu.production-area-shipment": "生产区发货",
+ "menu.virtual-zone-shipping": "虚拟区发货",
+ "menu.labeling-and-bundling": "贴标捆扎",
+ "menu.in-stock-management": "在库管理",
+ "menu.inventory-management": "盘点管理",
+ "menu.vehicle-management": "载具管理",
+ "menu.empty-vehicle-entering-the-warehouse": "空载具入库",
+ "menu.empty-vehicle-leaving-the-warehouse": "空载具出库",
+ "menu.print-management": "打印管理",
+ "menu.customer-label-printing": "客户标签打印",
+ "menu.scheduling-management": "调度管理",
+ "menu.task-management": "任务管理",
+ "menu.rgv-status-query": "RGV状态查询",
+ "filter.area": "区域",
+ "filter.point": "点位",
+ "filter.mother-roll": "母卷",
+ "filter.state": "状态",
+ "filter.starting-point": "起点",
+ "filter.finishing-point": "起点",
+ "filter.device": "设备",
+ "filter.material": "物料",
+ "filter.quantity": "数量",
+ "filter.air-shaft": "气涨轴",
+ "filter.vehicle-code": "载具码",
+ "filter.last-roll-down": "末次下卷",
+ "filter.cache-point": "缓存点位",
+ "filter.wooden-box-code": "木箱码",
+ "filter.virtual-library": "虚拟库",
+ "filter.remark": "备注",
+ "filter.document-type": "单据类型",
+ "filter.keywords": "关键字",
+ "filter.warehouse-area": "库区",
+ "grid.number": "序号",
+ "grid.select": "选择",
+ "grid.work-order-number": "工单号",
+ "grid.mother-roll-number": "母卷号",
+ "grid.sub-roll-number": "子卷号",
+ "grid.start-time": "开始时间",
+ "grid.end-time": "结束时间",
+ "grid.machine-code": "机台编码",
+ "grid.point-code": "点位编码",
+ "grid.product-code": "产品编码",
+ "grid.theoretical-length": "理论长度",
+ "grid.total-weight": "总重量",
+ "grid.weight": "重量",
+ "grid.total-net-weight": "总净重",
+ "grid.net-weight": "净重",
+ "grid.details": "明细数",
+ "grid.customer-code": "客户编码",
+ "grid.customer-name": "客户名称",
+ "grid.delivery-note": "交货单",
+ "grid.car-number": "车号",
+ "grid.production-area": "生产区域",
+ "grid.update-time": "更新时间",
+ "grid.product-description": "产品描述",
+ "grid.in-oven-time": "入烘箱时间",
+ "grid.out-oven-time": "出烘箱时间",
+ "grid.is-it-baked": "是否烘烤",
+ "grid.split-group": "分切组",
+ "grid.production-sequence": "生产顺序",
+ "grid.date-of-manufacture": "生产日期",
+ "grid.order-number": "订单号",
+ "grid.paper-FRP-tube": "纸筒/FRP管",
+ "grid.paper-tube-material-code": "纸筒物料编码",
+ "grid.paper-tube-material-description": "纸筒物料描述",
+ "grid.paper-tube-specifications": "纸筒规格",
+ "grid.FRP-pipe-material-code": "FRP管物料编码",
+ "grid.FRP-pipe-material-description": "FRP管物料描述",
+ "grid.FRP-pipe-specifications": "FRP管规格",
+ "grid.place": "位置",
+ "grid.delivery-completed": "配送完成",
+ "grid.material-name": "物料名称",
+ "grid.material-code": "物料编码",
+ "grid.volume-number": "卷数",
+ "grid.gross-weight-of-wooden-box": "木箱毛重",
+ "grid.sales-order-and-line-number": "销售订单及行号",
+ "grid.specifications": "规格",
+ "grid.warehousing-date": "入库日期",
+ "grid.task-number": "任务号",
+ "grid.pickup-point": "取货点",
+ "grid.release-point": "放货点",
+ "grid.task-type": "任务类型",
+ "grid.generation-time": "生成时间",
+ "grid.device-code": "设备编码",
+ "grid.device-name": "设备名称",
+ "grid.coordinate": "坐标",
+ "grid.quantity-of-electricity": "电量",
+ "grid.fault-name": "故障名称",
+ "grid.floor": "楼层",
+ "grid.is-stock": "是否有货",
+ "toast.point-not-empty": "点位不能为空",
+ "toast.select-cache-point": "请选择缓存点位",
+ "toast.select-device": "请选择设备",
+ "toast.select-row": "请选择一行",
+ "toast.device-not-empty": "设备不能为空",
+ "toast.material-not-empty": "物料不能为空",
+ "toast.quantity-not-empty": "数量不能为空",
+ "toast.scan-wooden-box-code": "请扫木箱码"
+}
\ No newline at end of file
diff --git a/main.js b/main.js
index 0315621..3ad0355 100644
--- a/main.js
+++ b/main.js
@@ -1,5 +1,6 @@
import App from './App'
import Vue from 'vue'
+import i18n from './locale/index.js'
Vue.config.productionTip = false
App.mpType = 'app'
@@ -34,6 +35,7 @@ Vue.filter('findByValue', (array, value) => {
import store from '@/vuex/store.js'
const app = new Vue({
+ i18n,
...App,
store
})
diff --git a/pages/login/setup.vue b/pages/login/setup.vue
index 0015f3b..2a7f65b 100644
--- a/pages/login/setup.vue
+++ b/pages/login/setup.vue
@@ -3,27 +3,37 @@
-
- 服务器地址
-
+
+ {{$t('setting.language')}}
+
+
+
-
- 刷新时间(s)
-
+
+ {{$t('setting.server')}}
+
-
- 客户标签打印
-
+
+ {{$t('setting.refresh')}}(s)
+
+
+
+
+
+ {{$t('setting.customer-label-printing')}}
+
+
+
-
-
+
+
@@ -40,13 +50,43 @@
options: [],
index: '',
addrip: this.$store.getters.baseUrl,
- setTime: this.$store.getters.setTime / 1000
+ setTime: this.$store.getters.setTime / 1000,
+ options1: [{text: '中文',value: 'zh-Hans'}, {text: 'English', value: 'en'}, {text: 'Indonesia', value: 'id'}],
+ index1: '',
+ systemLocale: '',
+ applicationLocale: ''
};
},
- created () {
- // this._virtualprintType()
+ onLoad() {
+ let systemInfo = uni.getSystemInfoSync();
+ this.systemLocale = systemInfo.language;
+ this.applicationLocale = uni.getLocale();
+ this.index1 = this.applicationLocale.split('-')[0]
+ this.isAndroid = systemInfo.platform.toLowerCase() === 'android';
+ uni.onLocaleChange((e) => {
+ this.applicationLocale = e.locale;
+ })
},
methods: {
+ onLocaleChange(e) {
+ if (this.isAndroid) {
+ uni.showModal({
+ content: this.$t('setting.language-change-confirm'),
+ success: (res) => {
+ if (res.confirm) {
+ uni.setLocale(e);
+ }
+ }
+ })
+ } else {
+ uni.setLocale(e);
+ this.$i18n.locale = e;
+ }
+ },
+ selectChange1(e) {
+ this.onLocaleChange(e)
+ this.index1 = e
+ },
goIn () {
uni.redirectTo({
url: '/pages/login/login'
@@ -91,14 +131,11 @@