|
- const fs = require('fs');
- const path = require('path');
-
- const en = {
- "pageTitle_delivery": "Delivery & Dispatch",
- "pageTitle_jobOrder": "Job Orders",
- "pageTitle_forecast": "Forecast & Planning",
- "pageTitle_warehouse": "Inventory & Warehouse",
- "pageTitle_equipmentBoard": "Equipment Usage Board",
- "pageTitle_processBoard": "Process Real-time Board",
- "pageTitle_jobOrderBoard": "Job Order Real-time Board",
- "pageTitle_purchase": "Purchase",
-
- "all": "All",
- "noData": "No data",
- "exportExcel": "Export Excel",
- "show": "Show",
- "laneX": "Lane X",
- "today": "Today",
- "yesterday": "Yesterday",
- "selectDate": "Select Date",
- "refresh": "Refresh",
- "otherBoards": "Other Boards",
- "autoRefresh": "Auto Refresh",
- "on": "On",
- "off": "Off",
- "intervalSeconds": "Interval (sec)",
- "minutes": "minutes",
- "minutesWithVal": "{{val}} min",
- "minuteAbbr": "min",
-
- "delivery_staffPerfDateError": "Staff performance start date cannot be later than end date",
- "delivery_ordersByDate": "Delivery Orders by Date",
- "delivery_ordersByDate_export": "Delivery_Orders_By_Date",
- "delivery_orderCount": "Order Count",
- "delivery_topItemsByCount": "Top Items by Delivery Count",
- "delivery_item": "Item",
- "delivery_itemPlaceholder": "Leave empty for all",
- "delivery_staffPerformanceTitle": "Staff Delivery Performance (Daily Pick Count & Duration)",
- "delivery_startDate": "Start Date",
- "delivery_endDate": "End Date",
- "delivery_store": "Store",
- "delivery_staff": "Staff",
- "delivery_staffPlaceholder": "Leave empty for all",
- "delivery_staffPerfCaption": "Per-person pick count & total duration for period",
- "delivery_colStaff": "Staff",
- "delivery_colPickCount": "Pick Count",
- "delivery_colTotalMin": "Total Min",
- "delivery_colAvgMin": "Avg Min/Order",
- "delivery_dailyByStaff": "Daily by Staff",
- "delivery_noDataDesc": "No delivery data available for the selected period.",
-
- "jo_byStatus": "Job Orders by Status",
- "jo_byStatus_export": "Job_Orders_By_Status",
- "jo_datePlanStart": "Date (Plan Start)",
- "jo_createdVsCompleted": "Job Orders Created vs Completed by Date",
- "jo_createdVsCompleted_export": "Job_Orders_Created_vs_Completed",
- "jo_detailSection": "Job Order Material / Process / Equipment",
- "jo_materialPendingPicked": "Material Pending / Picked (by Plan Date)",
- "jo_materialPendingPicked_export": "Material_Pending_vs_Picked",
- "jo_processPendingCompleted": "Process Pending / Completed (by Plan Date)",
- "jo_processPendingCompleted_export": "Process_Pending_vs_Completed",
- "jo_equipmentWorkingWorked": "Equipment In Use / Used (by Job Order)",
- "jo_equipmentWorkingWorked_export": "Equipment_In_Use_vs_Used",
-
- "board_jobOrderLive": "Job Order Live Board",
- "board_equipmentUsage": "Equipment Usage Board",
- "board_processLive": "Process Live Board",
- "board_jobOrderChart": "Job Order Chart",
-
- "forecast_plannedOutputByDate": "Planned Daily Output by Item (Forecast)",
- "forecast_plannedOutputByDate_export": "Planned_Daily_Output_By_Item",
- "forecast_itemCode": "Item Code",
- "forecast_noScheduleData": "No scheduling data for this date range.",
- "forecast_productionSchedule": "Production Schedule by Date (Estimated Output)",
- "forecast_productionSchedule_export": "Production_Schedule_By_Date",
-
- "warehouse_stockTxnByDate": "Stock Transactions by Date (In / Out / Total)",
- "warehouse_stockTxnByDate_export": "Stock_Transactions_By_Date",
- "warehouse_stockInOutByDate": "Stock In vs Out by Date",
- "warehouse_stockInOutByDate_export": "Stock_In_vs_Out",
- "warehouse_balanceTrend": "Stock Balance Trend",
- "warehouse_balanceTrend_export": "Stock_Balance_Trend",
- "warehouse_consumptionTrend": "Monthly Consumption Trend (Outbound)",
- "warehouse_consumptionTrend_export": "Monthly_Consumption_Trend",
- "warehouse_qty": "Qty",
- "warehouse_optional": "Optional",
- "warehouse_sumAll": "Sum all if empty",
- "warehouse_addItem": "Add item to split",
- "warehouse_exportFail": "Master export failed",
-
- "equipment_status": "Status",
- "equipment_equipment": "Equipment",
- "equipment_jobOrder": "Job Order",
- "equipment_process": "Process",
- "equipment_planStart": "Plan Start",
- "equipment_startTime": "Start Time",
- "equipment_endTime": "End Time",
- "equipment_operator": "Operator",
- "equipment_boardTitle": "Equipment Usage Board",
- "equipment_infoDescription1": "Shows equipment status in real-time: working, idle, or under maintenance.",
- "equipment_infoDescription2": "Each equipment card displays the current job order and process.",
- "equipment_infoDescription3": "Equipment with unclosed hours or missing time entries will be flagged.",
- "equipment_searchAndList": "Search & List",
- "equipment_notToday": "Not Today",
- "equipment_unclosedHours": "Equipment hours not closed",
- "equipment_missingHours": "Missing equipment hours",
- "equipment_completed": "Completed",
-
- "process_notStarted": "Not Started",
- "process_inProgress": "In Progress",
- "process_completed": "Completed",
- "process_nonToday": "Not Today",
-
- "dateRange_lastDays": "Last {{d}} days",
-
- "series_inbound": "Inbound",
- "series_outbound": "Outbound",
- "series_total": "Total",
- "series_balance": "Balance",
- "series_consumption": "Consumption",
- "series_created": "Created",
- "series_completed": "Completed",
- "series_month": "Month",
-
- "requestFailed": "Request failed"
- };
-
- const zh = {
- "pageTitle_delivery": "發貨與配送",
- "pageTitle_jobOrder": "工單",
- "pageTitle_forecast": "預測與計劃",
- "pageTitle_warehouse": "庫存與倉儲",
- "pageTitle_equipmentBoard": "設備使用看板",
- "pageTitle_processBoard": "工序即時看板",
- "pageTitle_jobOrderBoard": "工單即時看板",
- "pageTitle_purchase": "採購",
-
- "all": "全部",
- "noData": "無數據",
- "exportExcel": "匯出 Excel",
- "show": "顯示",
- "laneX": "車線-X",
- "today": "今日",
- "yesterday": "昨日",
- "selectDate": "選擇日期",
- "refresh": "重新整理",
- "otherBoards": "其他看板",
- "autoRefresh": "自動重新整理",
- "on": "開啟",
- "off": "關閉",
- "intervalSeconds": "間隔(秒)",
- "minutes": "分鐘",
- "minutesWithVal": "{{val}} 分鐘",
- "minuteAbbr": "分",
-
- "delivery_staffPerfDateError": "員工發貨績效的起始日期不能晚於結束日期",
- "delivery_ordersByDate": "按日期發貨單數量",
- "delivery_ordersByDate_export": "發貨單數量_按日期",
- "delivery_orderCount": "單數",
- "delivery_topItemsByCount": "發貨數量排行(按物料)",
- "delivery_item": "物料",
- "delivery_itemPlaceholder": "不選則全部",
- "delivery_staffPerformanceTitle": "員工發貨績效(每日揀貨數量與耗時)",
- "delivery_startDate": "開始日期",
- "delivery_endDate": "結束日期",
- "delivery_store": "倉別",
- "delivery_staff": "員工",
- "delivery_staffPlaceholder": "不選則全部",
- "delivery_staffPerfCaption": "週期內每人揀單數及總耗時(首揀至完成)",
- "delivery_colStaff": "員工",
- "delivery_colPickCount": "揀單數",
- "delivery_colTotalMin": "總分鐘",
- "delivery_colAvgMin": "平均分鐘/單",
- "delivery_dailyByStaff": "每日按員工單數",
- "delivery_noDataDesc": "所選期間內暫無發貨記錄,請調整日期範圍後再試。",
-
- "jo_byStatus": "工單按狀態",
- "jo_byStatus_export": "工單_按狀態",
- "jo_datePlanStart": "日期(計劃開始)",
- "jo_createdVsCompleted": "工單創建與完成按日期",
- "jo_createdVsCompleted_export": "工單_創建與完成_按日期",
- "jo_detailSection": "工單物料/工序/設備",
- "jo_materialPendingPicked": "物料待領/已揀(按工單計劃日)",
- "jo_materialPendingPicked_export": "物料_待領_已揀",
- "jo_processPendingCompleted": "工序待完成/已完成(按工單計劃日)",
- "jo_processPendingCompleted_export": "工序_待完成_已完成",
- "jo_equipmentWorkingWorked": "設備使用中/已使用(按工單)",
- "jo_equipmentWorkingWorked_export": "設備_使用中_已使用",
-
- "board_jobOrderLive": "工單即時看板",
- "board_equipmentUsage": "設備使用看板",
- "board_processLive": "工序即時看板",
- "board_jobOrderChart": "工單圖表",
-
- "forecast_plannedOutputByDate": "按物料計劃日產量(預測)",
- "forecast_plannedOutputByDate_export": "計劃日產量_按物料",
- "forecast_itemCode": "物料編碼",
- "forecast_noScheduleData": "此日期範圍內尚無排程資料。",
- "forecast_productionSchedule": "按日期生產排程(預估產量)",
- "forecast_productionSchedule_export": "生產排程_按日期",
-
- "warehouse_stockTxnByDate": "按日期庫存流水(入/出/合計)",
- "warehouse_stockTxnByDate_export": "庫存流水_按日期",
- "warehouse_stockInOutByDate": "按日期入庫與出庫",
- "warehouse_stockInOutByDate_export": "入庫_出庫_按日期",
- "warehouse_balanceTrend": "庫存餘額趨勢",
- "warehouse_balanceTrend_export": "庫存餘額趨勢",
- "warehouse_consumptionTrend": "按月考勤消耗趨勢(出庫量)",
- "warehouse_consumptionTrend_export": "月考勤消耗趨勢",
- "warehouse_qty": "數量",
- "warehouse_optional": "可選",
- "warehouse_sumAll": "不選則全部合計",
- "warehouse_addItem": "新增物料以分項顯示",
- "warehouse_exportFail": "總表匯出失敗",
-
- "equipment_status": "狀態",
- "equipment_equipment": "設備",
- "equipment_jobOrder": "工單",
- "equipment_process": "工序",
- "equipment_planStart": "工單計劃開始",
- "equipment_startTime": "開工時間",
- "equipment_endTime": "完工時間",
- "equipment_operator": "操作員",
- "equipment_boardTitle": "設備使用看板",
- "equipment_infoDescription1": "即時顯示設備狀態:使用中、閒置或維護中。",
- "equipment_infoDescription2": "每張設備卡片顯示當前工單和工序。",
- "equipment_infoDescription3": "設備工時未結案或未填寫將被標記。",
- "equipment_searchAndList": "查詢與列表",
- "equipment_notToday": "非今日",
- "equipment_unclosedHours": "設備工時未結案",
- "equipment_missingHours": "未填設備工時",
- "equipment_completed": "已完工",
-
- "process_notStarted": "未開工",
- "process_inProgress": "進行中",
- "process_completed": "已完工",
- "process_nonToday": "非今日",
-
- "dateRange_lastDays": "最近 {{d}} 天",
-
- "series_inbound": "入庫",
- "series_outbound": "出庫",
- "series_total": "合計",
- "series_balance": "餘額",
- "series_consumption": "消耗",
- "series_created": "新建",
- "series_completed": "完成",
- "series_month": "月份",
-
- "requestFailed": "請求失敗"
- };
-
- const i18nDir = path.join(__dirname, '..', 'src', 'i18n');
- const enPath = path.join(i18nDir, 'en', 'chart.json');
- const zhPath = path.join(i18nDir, 'zh', 'chart.json');
-
- // Sort keys alphabetically
- const sortKeys = (obj) => {
- const sorted = {};
- Object.keys(obj).sort().forEach(k => { sorted[k] = obj[k]; });
- return sorted;
- };
-
- fs.writeFileSync(enPath, JSON.stringify(sortKeys(en), null, 2) + '\n');
- fs.writeFileSync(zhPath, JSON.stringify(sortKeys(zh), null, 2) + '\n');
- console.log('Updated chart.json with', Object.keys(en).length, 'keys for each language');
|