diff --git a/app/Http/Controllers/Admin/BasicSettings/MachineSettingController.php b/app/Http/Controllers/Admin/BasicSettings/MachineSettingController.php index a3dc2c1..7275938 100644 --- a/app/Http/Controllers/Admin/BasicSettings/MachineSettingController.php +++ b/app/Http/Controllers/Admin/BasicSettings/MachineSettingController.php @@ -14,6 +14,7 @@ use Illuminate\Support\Facades\Storage; use Illuminate\Support\Str; use Illuminate\Support\Facades\Log; +use App\Models\System\User; class MachineSettingController extends AdminController { @@ -45,7 +46,18 @@ class MachineSettingController extends AdminController } $models_list = $modelQuery->latest()->paginate($per_page)->withQueryString(); - // 3. 基礎下拉資料 (用於新增/編輯機台的彈窗) + // 3. 處理使用者清單 (Accounts Tab - 授權帳號) + $userQuery = User::query()->with('machines')->whereNotNull('company_id'); // 僅列出租戶帳號以供分配 + if ($tab === 'accounts' && $search) { + $userQuery->where(function ($q) use ($search) { + $q->where('name', 'like', "%{$search}%") + ->orWhere('username', 'like', "%{$search}%") + ->orWhere('email', 'like', "%{$search}%"); + }); + } + $users_list = $userQuery->latest()->paginate($per_page)->withQueryString(); + + // 4. 基礎下拉資料 (用於新增/編輯機台的彈窗) $models = MachineModel::select('id', 'name')->get(); $paymentConfigs = PaymentConfig::select('id', 'name')->get(); $companies = \App\Models\System\Company::select('id', 'name', 'code')->get(); @@ -53,6 +65,7 @@ class MachineSettingController extends AdminController return view('admin.basic-settings.machines.index', compact( 'machines', 'models_list', + 'users_list', 'models', 'paymentConfigs', 'companies', @@ -192,22 +205,83 @@ class MachineSettingController extends AdminController public function regenerateToken(Request $request, $serial): \Illuminate\Http\JsonResponse { - // 僅使用機台序號 (serial_no) 作為識別碼,最直覺且穩定 $machine = Machine::where('serial_no', $serial)->firstOrFail(); - $newToken = \Illuminate\Support\Str::random(60); $machine->update(['api_token' => $newToken]); - \Log::info('Machine API Token Regenerated', [ - 'machine_id' => $machine->id, + Log::info('Machine API Token Regenerated', [ + 'machine_id' => $machine->id, 'serial_no' => $machine->serial_no, 'user_id' => auth()->id() ]); return response()->json([ 'success' => true, - 'api_token' => $newToken, - 'message' => __('API Token regenerated successfully.') + 'message' => __('API Token regenerated successfully.'), + 'api_token' => $newToken + ]); + } + + /** + * AJAX: 取得特定帳號的機台分配狀態 (從 MachineController 遷移) + */ + public function getAccountMachines(User $user): \Illuminate\Http\JsonResponse + { + $currentUser = auth()->user(); + + // 安全檢查:只能操作自己公司的帳號(除非是系統管理員) + if (!$currentUser->isSystemAdmin() && $user->company_id !== $currentUser->company_id) { + return response()->json(['error' => 'Unauthorized'], 403); + } + + // 取得該使用者所屬公司之所有機台 + $machines = Machine::where('company_id', $user->company_id) + ->get(['id', 'name', 'serial_no']); + + $assignedIds = $user->machines()->pluck('machines.id')->toArray(); + + return response()->json([ + 'user' => $user, + 'machines' => $machines, + 'assigned_ids' => $assignedIds + ]); + } + + /** + * AJAX: 儲存特定帳號的機台分配 (從 MachineController 遷移) + */ + public function syncAccountMachines(Request $request, User $user): \Illuminate\Http\JsonResponse + { + $currentUser = auth()->user(); + + // 安全檢查 + if (!$currentUser->isSystemAdmin() && $user->company_id !== $currentUser->company_id) { + return response()->json(['error' => 'Unauthorized'], 403); + } + + $request->validate([ + 'machine_ids' => 'nullable|array', + 'machine_ids.*' => 'exists:machines,id' + ]); + + // 加固驗證:確保所有機台 ID 都屬於該使用者的公司 + if ($request->has('machine_ids')) { + $machineIds = array_unique($request->machine_ids); + $validCount = Machine::where('company_id', $user->company_id) + ->whereIn('id', $machineIds) + ->count(); + + if ($validCount !== count($machineIds)) { + return response()->json(['error' => 'Invalid machine IDs provided.'], 422); + } + } + + $user->machines()->sync($request->machine_ids ?? []); + + return response()->json([ + 'success' => true, + 'message' => __('Permissions updated successfully'), + 'assigned_machines' => $user->machines()->select('machines.id', 'machines.name', 'machines.serial_no')->get() ]); } } diff --git a/app/Http/Controllers/Admin/MachineController.php b/app/Http/Controllers/Admin/MachineController.php index 732bad6..09d093f 100644 --- a/app/Http/Controllers/Admin/MachineController.php +++ b/app/Http/Controllers/Admin/MachineController.php @@ -102,69 +102,6 @@ class MachineController extends AdminController } - /** - * AJAX: 取得特定帳號的機台分配狀態 - */ - public function getAccountMachines(\App\Models\System\User $user) - { - $currentUser = auth()->user(); - - // 安全檢查:只能操作自己公司的帳號(除非是系統管理員) - if (!$currentUser->isSystemAdmin() && $user->company_id !== $currentUser->company_id) { - return response()->json(['error' => 'Unauthorized'], 403); - } - - // 取得該公司所有機台 (限定 company_id 以實作資料隔離) - $machines = Machine::where('company_id', $user->company_id) - ->get(['id', 'name', 'serial_no']); - - $assignedIds = $user->machines()->pluck('machines.id')->toArray(); - - return response()->json([ - 'user' => $user, - 'machines' => $machines, - 'assigned_ids' => $assignedIds - ]); - } - - /** - * AJAX: 儲存特定帳號的機台分配 - */ - public function syncAccountMachines(Request $request, \App\Models\System\User $user) - { - $currentUser = auth()->user(); - - // 安全檢查 - if (!$currentUser->isSystemAdmin() && $user->company_id !== $currentUser->company_id) { - return response()->json(['error' => 'Unauthorized'], 403); - } - - $request->validate([ - 'machine_ids' => 'nullable|array', - 'machine_ids.*' => 'exists:machines,id' - ]); - - // 加固驗證:確保所有機台 ID 都屬於該使用者的公司 - if ($request->has('machine_ids')) { - $machineIds = array_unique($request->machine_ids); - $validCount = Machine::where('company_id', $user->company_id) - ->whereIn('id', $machineIds) - ->count(); - - if ($validCount !== count($machineIds)) { - return response()->json(['error' => 'Invalid machine IDs provided.'], 422); - } - } - - $user->machines()->sync($request->machine_ids ?? []); - - return response()->json([ - 'success' => true, - 'message' => __('Permissions updated successfully.'), - 'assigned_machines' => $user->machines()->select('machines.id', 'machines.name', 'machines.serial_no')->get() - ]); - } - /** * 機台使用率統計 */ diff --git a/lang/en.json b/lang/en.json index 20d175f..4fec5b7 100644 --- a/lang/en.json +++ b/lang/en.json @@ -2,6 +2,8 @@ "A new verification link has been sent to your email address.": "A new verification link has been sent to your email address.", "AI Prediction": "AI Prediction", "API Token": "API Token", + "API Token Copied": "API Token Copied", + "API Token regenerated successfully.": "API Token regenerated successfully.", "APK Versions": "APK Versions", "APP Features": "APP Features", "APP Management": "APP Management", @@ -9,6 +11,7 @@ "APP_ID": "APP_ID", "APP_KEY": "APP_KEY", "Account": "帳號", + "Account :name status has been changed to :status.": "Account :name status has been changed to :status.", "Account Management": "Account Management", "Account Name": "帳號姓名", "Account Settings": "Account Settings", @@ -51,35 +54,48 @@ "Analysis Permissions": "Analysis Permissions", "Apply to all identical products in this machine": "Apply to all identical products in this machine", "Are you sure to delete this customer?": "Are you sure to delete this customer?", + "Are you sure you want to change the status of this product? Disabled products will not be visible on the machine.": "Are you sure you want to change the status of this product? Disabled products will not be visible on the machine.", + "Are you sure you want to change the status? After disabling, this account will no longer be able to log in to the system.": "Are you sure you want to change the status? After disabling, this account will no longer be able to log in to the system.", + "Are you sure you want to change the status? This may affect associated accounts.": "Are you sure you want to change the status? This may affect associated accounts.", + "Are you sure you want to deactivate this account? After deactivating, this account will no longer be able to log in to the system.": "Are you sure you want to deactivate this account? After deactivating, this account will no longer be able to log in to the system.", "Are you sure you want to delete this account?": "Are you sure you want to delete this account?", "Are you sure you want to delete this account? This action cannot be undone.": "Are you sure you want to delete this account? This action cannot be undone.", "Are you sure you want to delete this configuration?": "您確定要刪除此金流配置嗎?", "Are you sure you want to delete this configuration? This action cannot be undone.": "Are you sure you want to delete this configuration? This action cannot be undone.", "Are you sure you want to delete this item? This action cannot be undone.": "Are you sure you want to delete this item? This action cannot be undone.", + "Are you sure you want to delete this product?": "Are you sure you want to delete this product?", + "Are you sure you want to delete this product? All related historical translation data will also be removed.": "Are you sure you want to delete this product? All related historical translation data will also be removed.", "Are you sure you want to delete this role? This action cannot be undone.": "Are you sure you want to delete this role? This action cannot be undone.", "Are you sure you want to delete your account?": "Are you sure you want to delete your account?", "Are you sure you want to proceed? This action cannot be undone.": "您確定要繼續嗎?此操作將無法復原。", "Are you sure?": "Are you sure?", "Assign": "Assign", - "Assign Machines": "分配機台", - "Assigned Machines": "授權機台", + "Assign Machines": "Assign Machines", + "Assigned Machines": "Assigned Machines", "Audit Management": "Audit Management", - "Audit Permissions": "Audit Permissions", + "Authorize": "Authorize", + "Authorized Accounts": "Authorized Accounts", "Authorized Machines": "Authorized Machines", + "Authorized Machines Management": "Authorized Machines Management", "Availability": "可用性 (Availability)", "Available Machines": "可供分配的機台", "Avatar updated successfully.": "Avatar updated successfully.", + "Avg Cycle": "Avg Cycle", "Badge Settings": "Badge Settings", + "Barcode": "Barcode", "Basic Information": "Basic Information", "Basic Settings": "Basic Settings", "Basic Specifications": "Basic Specifications", "Batch No": "Batch No", "Belongs To": "Company Name", "Belongs To Company": "Company Name", + "Business Type": "Business Type", "Buyout": "Buyout", "Cancel": "Cancel", "Cancel Purchase": "Cancel Purchase", "Cannot Delete Role": "Cannot Delete Role", + "Cannot change Super Admin status.": "Cannot change Super Admin status.", + "Cannot delete company with active accounts.": "Cannot delete company with active accounts.", "Cannot delete model that is currently in use by machines.": "Cannot delete model that is currently in use by machines.", "Cannot delete role with active users.": "Cannot delete role with active users.", "Card Reader": "Card Reader", @@ -89,6 +105,8 @@ "Category": "Category", "Change": "Change", "Change Stock": "Change Stock", + "Channel Limits": "Channel Limits", + "Channel Limits Configuration": "Channel Limits Configuration", "ChannelId": "ChannelId", "ChannelSecret": "ChannelSecret", "Checkout Time 1": "Checkout Time 1", @@ -106,34 +124,50 @@ "Config Name": "配置名稱", "Configuration Name": "Configuration Name", "Confirm": "Confirm", - "Contract Period": "Contract Period", + "Confirm Account Deactivation": "Confirm Deactivation", + "Confirm Account Status Change": "Confirm Account Status Change", "Confirm Deletion": "Confirm Deletion", "Confirm Password": "Confirm Password", + "Confirm Status Change": "Confirm Status Change", "Connecting...": "Connecting...", "Connectivity Status": "Connectivity Status", "Connectivity vs Sales Correlation": "連線狀態與銷售關聯分析", - "Contact Info": "Contact Info", "Contact & Details": "Contact & Details", "Contact Email": "Contact Email", + "Contact Info": "Contact Info", "Contact Name": "Contact Name", "Contact Phone": "Contact Phone", + "Contract Period": "Contract Period", "Contract Until (Optional)": "Contract Until (Optional)", + "Cost": "Cost", "Coupons": "Coupons", "Create": "Create", "Create Config": "Create Config", "Create Machine": "Create Machine", + "Create New Role": "Create New Role", "Create Payment Config": "Create Payment Config", + "Create Product": "Create Product", "Create Role": "Create Role", + "Create Sub Account Role": "Create Sub Account Role", "Create a new role and assign permissions.": "Create a new role and assign permissions.", "Critical": "Critical", + "Current": "Current", "Current Password": "Current Password", + "Current Status": "Current Status", "Current Stock": "Current Stock", - "Business Type": "Business Type", + "Current Type": "Current Type", + "Current:": "Cur:", + "Customer Details": "Customer Details", "Customer Info": "Customer Info", "Customer Management": "Customer Management", "Customer Payment Config": "Customer Payment Config", + "Customer and associated accounts disabled successfully.": "Customer and associated accounts disabled successfully.", "Customer created successfully.": "Customer created successfully", + "Customer deleted successfully.": "Customer deleted successfully.", + "Customer enabled successfully.": "Customer enabled successfully.", "Customer updated successfully.": "Customer updated successfully.", + "Cycle Efficiency": "Cycle Efficiency", + "Daily Revenue": "Daily Revenue", "Danger Zone: Delete Account": "Danger Zone: Delete Account", "Dashboard": "Dashboard", "Data Configuration": "Data Configuration", @@ -143,18 +177,19 @@ "Default Not Donate": "Default Not Donate", "Define and manage security roles and permissions.": "Define and manage security roles and permissions.", "Define new third-party payment parameters": "Define new third-party payment parameters", - "Feature Toggles": "Feature Toggles", - "Current": "Current", - "Current Type": "Current Type", "Delete": "Delete", "Delete Account": "Delete Account", "Delete Permanently": "Delete Permanently", + "Delete Product Confirmation": "Delete Product Confirmation", "Deposit Bonus": "Deposit Bonus", "Describe the repair or maintenance status...": "Describe the repair or maintenance status...", "Deselect All": "取消全選", "Detail": "Detail", "Device Information": "Device Information", "Device Status Logs": "Device Status Logs", + "Devices": "Devices", + "Disable": "Disable", + "Disable Product Confirmation": "Disable Product Confirmation", "Disabled": "Disabled", "Discord Notifications": "Discord Notifications", "Dispense Failed": "Dispense Failed", @@ -173,11 +208,18 @@ "Edit Machine Model": "Edit Machine Model", "Edit Machine Settings": "編輯機台設定", "Edit Payment Config": "Edit Payment Config", + "Edit Product": "Edit Product", "Edit Role": "Edit Role", "Edit Role Permissions": "Edit Role Permissions", "Edit Settings": "Edit Settings", + "Edit Sub Account Role": "Edit Sub Account Role", "Email": "Email", + "Enable": "Enable", + "Enable Material Code": "Enable Material Code", + "Enable Points": "Enable Points", + "Enabled": "Enabled", "Enabled/Disabled": "Enabled/Disabled", + "End Date": "End Date", "Engineer": "Engineer", "Ensure your account is using a long, random password to stay secure.": "Ensure your account is using a long, random password to stay secure.", "Enter login ID": "Enter login ID", @@ -189,16 +231,20 @@ "Enter your password to confirm": "Enter your password to confirm", "Equipment efficiency and OEE metrics": "設備效能與 OEE 綜合指標", "Error": "Error", + "Error processing request": "Error processing request", "Execution Time": "Execution Time", "Expired": "Expired", - "End Date": "End Date", "Expired / Disabled": "Expired / Disabled", "Expiry Date": "Expiry Date", "Expiry Management": "Expiry Management", "Failed to fetch machine data.": "Failed to fetch machine data.", + "Failed to load permissions": "Failed to load permissions", "Failed to save permissions.": "Failed to save permissions.", "Failed to update machine images: ": "Failed to update machine images: ", + "Feature Settings": "Feature Settings", + "Feature Toggles": "Feature Toggles", "Fill in the device repair or maintenance details": "Fill in the device repair or maintenance details", + "Fill in the product details below": "Fill in the product details below", "Firmware Version": "Firmware Version", "Fleet Avg OEE": "Fleet Avg OEE", "Fleet Performance": "Fleet Performance", @@ -206,11 +252,14 @@ "From:": "From:", "Full Access": "Full Access", "Full Name": "Full Name", + "Full Points": "Full Points", "Games": "Games", "General permissions not linked to a specific menu.": "未連結到特定選單的一般權限。", "Gift Definitions": "Gift Definitions", "Global roles accessible by all administrators.": "Global roles accessible by all administrators.", "Got it": "Got it", + "Half Points": "Half Points", + "Half Points Amount": "Half Points Amount", "Hardware & Network": "Hardware & Network", "Hardware & Slots": "Hardware & Slots", "HashIV": "HashIV", @@ -219,33 +268,9 @@ "Heating End Time": "Heating End Time", "Heating Range": "Heating Range", "Heating Start Time": "Heating Start Time", - "Channel Limits": "Channel Limits", "Helper": "Helper", "Home Page": "Home Page", - "Machine Utilization": "Machine Utilization", - "Machine Registry": "Machine Registry", - "Avg Cycle": "Avg Cycle", - "Cycle Efficiency": "Cycle Efficiency", - "Daily Revenue": "Daily Revenue", - "Real-time fleet efficiency and OEE metrics": "Real-time fleet efficiency and OEE metrics", - "Real-time performance analytics": "Real-time performance analytics", - "Reporting Period": "Reporting Period", - "Select an asset from the left to start analysis": "Select an asset from the left to start analysis", - "Select date to sync data": "Select date to sync data", - "Search serial or name...": "Search serial or name...", - "Serial NO": "Serial NO", - "OEE Efficiency Trend": "OEE Efficiency Trend", - "Online Status": "Online Status", - "Optimized Performance": "Optimized Performance", - "Output Count": "Output Count", - "OEE": "OEE", - "Utilized Time": "Utilized Time", - "Units": "Units", - "No Machine Selected": "No Machine Selected", - "No matching machines": "No matching machines", - "min": "min", - "s": "s", - "Total Gross Value": "Total Gross Value", + "Identity & Codes": "Identity & Codes", "Info": "Info", "Initial Admin Account": "Initial Admin Account", "Initial Role": "Initial Role", @@ -256,7 +281,6 @@ "Joined": "Joined", "Key": "Key", "Key No": "Key No", - "Identity & Codes": "Identity & Codes", "LEVEL TYPE": "LEVEL TYPE", "LINE Pay Direct": "LINE Pay Direct", "LINE Pay Direct Settings Description": "LINE Pay Official Direct Connection Settings", @@ -267,6 +291,7 @@ "Last Signal": "Last Signal", "Last Time": "Last Time", "Last Updated": "Last Updated", + "Lease": "Lease", "Level": "Level", "Line Coupons": "Line Coupons", "Line Machines": "Line Machines", @@ -276,14 +301,15 @@ "Line Orders": "Line Orders", "Line Permissions": "Line Permissions", "Line Products": "Line Products", + "Live Fleet Updates": "Live Fleet Updates", "Loading machines...": "Loading machines...", - "Loyalty & Features": "Loyalty & Features", "Loading...": "Loading...", "Location": "Location", "Locked Page": "Locked Page", "Login History": "Login History", "Logout": "Logout", "Logs": "Logs", + "Loyalty & Features": "Loyalty & Features", "Machine Count": "Machine Count", "Machine Details": "Machine Details", "Machine Images": "Machine Images", @@ -298,12 +324,14 @@ "Machine Model Settings": "Machine Model Settings", "Machine Name": "Machine Name", "Machine Permissions": "Machine Permissions", + "Machine Registry": "Machine Registry", "Machine Reports": "Machine Reports", "Machine Restart": "Machine Restart", "Machine Settings": "Machine Settings", "Machine Status": "Machine Status", "Machine Status List": "Machine Status List", "Machine Stock": "Machine Stock", + "Machine Utilization": "Machine Utilization", "Machine created successfully.": "Machine created successfully.", "Machine images updated successfully.": "Machine images updated successfully.", "Machine model created successfully.": "Machine model created successfully.", @@ -320,21 +348,23 @@ "Maintenance QR": "Maintenance QR", "Maintenance QR Code": "Maintenance QR Code", "Maintenance Records": "Maintenance Records", - "Live Fleet Updates": "Live Fleet Updates", "Maintenance record created successfully": "Maintenance record created successfully", - "Scan this code to quickly access the maintenance form for this device.": "Scan this code to quickly access the maintenance form for this device.", "Manage Account Access": "管理帳號存取", "Manage Expiry": "Manage Expiry", "Manage administrative and tenant accounts": "Manage administrative and tenant accounts", "Manage all tenant accounts and validity": "Manage all tenant accounts and validity", + "Manage your catalog, prices, and multilingual details.": "Manage your catalog, prices, and multilingual details.", "Manage your machine fleet and operational data": "Manage your machine fleet and operational data", "Manage your profile information, security settings, and login history": "Manage your profile information, security settings, and login history", "Management of operational parameters": "Management of operational parameters", "Management of operational parameters and models": "Management of operational parameters and models", + "Manufacturer": "Manufacturer", + "Material Code": "Material Code", "Max 3": "Max 3", "Member & External": "Member & External", "Member List": "Member List", "Member Management": "Member Management", + "Member Price": "Member Price", "Member System": "Member System", "Membership Tiers": "Membership Tiers", "Menu Permissions": "Menu Permissions", @@ -352,14 +382,18 @@ "Monthly Transactions": "Monthly Transactions", "Monthly cumulative revenue overview": "Monthly cumulative revenue overview", "Name": "Name", + "Name in English": "Name in English", + "Name in Japanese": "Name in Japanese", + "Name in Traditional Chinese": "Name in Traditional Chinese", "Never Connected": "Never Connected", "New Password": "New Password", - "Lease": "Lease", "New Password (leave blank to keep current)": "New Password (leave blank to keep current)", "New Record": "New Record", + "New Role": "New Role", "New Sub Account Role": "New Sub Account Role", "Next": "Next", "No Invoice": "No Invoice", + "No Machine Selected": "No Machine Selected", "No accounts found": "No accounts found", "No alert summary": "No alert summary", "No configurations found": "No configurations found", @@ -375,6 +409,7 @@ "No machines available": "No machines available", "No machines available in this company.": "此客戶目前沒有可供分配的機台。", "No matching logs found": "No matching logs found", + "No matching machines": "No matching machines", "No permissions": "No permissions", "No roles found.": "No roles found.", "No slots found": "No slots found", @@ -384,6 +419,8 @@ "Not Used": "Not Used", "Not Used Description": "不使用第三方支付介接", "Notes": "Notes", + "OEE": "OEE", + "OEE Efficiency Trend": "OEE Efficiency Trend", "OEE Score": "OEE Score", "OEE.Activity": "Activity", "OEE.Errors": "Errors", @@ -391,29 +428,32 @@ "OEE.Orders": "Orders", "OEE.Sales": "Sales", "Offline": "Offline", - "Original": "Original", - "Original Type": "Original Type", - "Original:": "Ori:", - "Current:": "Cur:", "Offline Machines": "Offline Machines", "Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.": "Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your account, please download any data or information that you wish to retain.", "Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.": "Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your password to confirm you would like to permanently delete your account.", "Online": "Online", "Online Duration": "Online Duration", "Online Machines": "Online Machines", + "Online Status": "Online Status", "Only system roles can be assigned to platform administrative accounts.": "Only system roles can be assigned to platform administrative accounts.", "Operational Parameters": "Operational Parameters", "Operations": "Operations", "Optimal": "Optimal", + "Optimized Performance": "Optimized Performance", "Optimized for display. Supported formats: JPG, PNG, WebP.": "Optimized for display. Supported formats: JPG, PNG, WebP.", "Optional": "Optional", "Order Management": "Order Management", "Orders": "Orders", + "Original": "Original", + "Original Type": "Original Type", + "Original:": "Ori:", "Other Permissions": "Other Permissions", "Others": "Others", + "Output Count": "Output Count", "Owner": "Company Name", "PARTNER_KEY": "PARTNER_KEY", "PI_MERCHANT_ID": "PI_MERCHANT_ID", + "PNG, JPG up to 2MB": "PNG, JPG up to 2MB", "PS_MERCHANT_ID": "PS_MERCHANT_ID", "Parameters": "Parameters", "Pass Code": "Pass Code", @@ -429,12 +469,12 @@ "Payment Configuration updated successfully.": "Payment Configuration updated successfully.", "Payment Selection": "Payment Selection", "Pending": "Pending", - "Pricing Information": "Pricing Information", "Performance": "Performance", "Permanent": "Permanent", "Permanently Delete Account": "Permanently Delete Account", "Permission Settings": "Permission Settings", "Permissions": "Permissions", + "Permissions updated successfully": "Authorization updated successfully", "Phone": "Phone", "Photo Slot": "Photo Slot", "Pickup Code": "Pickup Code", @@ -445,9 +485,18 @@ "Point Rules": "Point Rules", "Point Settings": "Point Settings", "Previous": "Previous", + "Pricing Information": "Pricing Information", + "Product Details": "Product Details", + "Product Image": "Product Image", "Product Management": "Product Management", + "Product Name (Multilingual)": "Product Name (Multilingual)", "Product Reports": "Product Reports", "Product Status": "商品狀態", + "Product created successfully": "Product created successfully", + "Product deleted successfully": "Product deleted successfully", + "Product status updated to :status": "Product status updated to :status", + "Product updated successfully": "Product updated successfully", + "Production Company": "Production Company", "Profile": "Profile", "Profile Information": "Profile Information", "Profile Settings": "Profile Settings", @@ -465,10 +514,14 @@ "Quick search...": "Quick search...", "Real-time OEE analysis awaits": "即時 OEE 分析預備中", "Real-time Operation Logs (Last 50)": "Real-time Operation Logs (Last 50)", + "Real-time fleet efficiency and OEE metrics": "Real-time fleet efficiency and OEE metrics", "Real-time monitoring across all machines": "Real-time monitoring across all machines", + "Real-time performance analytics": "Real-time performance analytics", "Real-time status monitoring": "Real-time status monitoring", "Receipt Printing": "Receipt Printing", "Recent Login": "Recent Login", + "Regenerate": "Regenerate", + "Regenerating the token will disconnect the physical machine until it is updated. Continue?": "Regenerating the token will disconnect the physical machine until it is updated. Continue?", "Remote Change": "Remote Change", "Remote Checkout": "Remote Checkout", "Remote Dispense": "Remote Dispense", @@ -481,6 +534,7 @@ "Replenishment Page": "Replenishment Page", "Replenishment Records": "Replenishment Records", "Replenishments": "Replenishments", + "Reporting Period": "Reporting Period", "Reservation Members": "Reservation Members", "Reservation System": "Reservation System", "Reservations": "Reservations", @@ -502,6 +556,7 @@ "Roles scoped to specific customer companies.": "Roles scoped to specific customer companies.", "Running Status": "Running Status", "SYSTEM": "SYSTEM", + "Sale Price": "Sale Price", "Sales": "Sales", "Sales Activity": "銷售活動", "Sales Management": "Sales Management", @@ -514,14 +569,16 @@ "Saved.": "Saved.", "Saving...": "儲存中...", "Scale level and access control": "層級與存取控制", + "Scan this code to quickly access the maintenance form for this device.": "Scan this code to quickly access the maintenance form for this device.", "Search configurations...": "Search configurations...", "Search customers...": "Search customers...", "Search machines by name or serial...": "Search machines by name or serial...", - "Search machines...": "Search machines...", + "Search machines...": "Search machine name or serial...", "Search models...": "Search models...", "Search roles...": "Search roles...", "Search serial no or name...": "Search serial no or name...", "Search serial or machine...": "Search serial or machine...", + "Search serial or name...": "Search serial or name...", "Search users...": "Search users...", "Select All": "全選", "Select Company": "Select Company Name", @@ -530,12 +587,18 @@ "Select Model": "Select Model", "Select Owner": "Select Company Name", "Select a machine to deep dive": "請選擇機台以開始深度分析", + "Select an asset from the left to start analysis": "Select an asset from the left to start analysis", + "Select date to sync data": "Select date to sync data", "Selected": "Selected", "Selected Date": "查詢日期", + "Selection": "Selection", "Serial & Version": "Serial & Version", + "Serial NO": "Serial NO", "Serial No": "Serial No", "Serial Number": "Serial Number", "Show": "Show", + "Show material code field in products": "Show material code field in products", + "Show points rules in products": "Show points rules in products", "Showing": "Showing", "Showing :from to :to of :total items": "Showing :from to :to of :total items", "Sign in to your account": "Sign in to your account", @@ -546,7 +609,11 @@ "Slot Test": "Slot Test", "Some fields need attention": "Some fields need attention", "Special Permission": "Special Permission", + "Specifications": "Specifications", + "Spring Channel Limit": "Spring Channel Limit", + "Spring Limit": "Spring Limit", "Staff Stock": "Staff Stock", + "Start Date": "Start Date", "Status": "Status", "Status / Temp / Sub / Card / Scan": "Status / Temp / Sub / Card / Scan", "Stock Management": "Stock Management", @@ -554,7 +621,6 @@ "Store ID": "Store ID", "Store Management": "Store Management", "StoreID": "StoreID", - "Start Date": "Start Date", "Sub Account Management": "Sub Account Management", "Sub Account Roles": "Sub Account Roles", "Sub Accounts": "Sub Accounts", @@ -596,24 +662,30 @@ "Total Connected": "Total Connected", "Total Customers": "Total Customers", "Total Daily Sales": "Today's Total Sales", + "Total Gross Value": "Total Gross Value", "Total Logins": "Total Logins", "Total Selected": "Total Selected", "Total Slots": "Total Slots", "Total items": "Total items: :count", + "Track Channel Limit": "Track Channel Limit", + "Track Limit": "Track Limit", "Track device health and maintenance history": "Track device health and maintenance history", "Transfer Audit": "Transfer Audit", "Transfers": "Transfers", "Tutorial Page": "Tutorial Page", "Type": "Type", "UI Elements": "UI Elements", + "Uncategorized": "Uncategorized", "Unified Operational Timeline": "Unified Operational Timeline", + "Units": "Units", "Unknown": "Unknown", "Update": "Update", + "Update Authorization": "Update Authorization", "Update Customer": "Update Customer", "Update Password": "Update Password", + "Update Product": "Update Product", "Update existing role and permissions.": "Update existing role and permissions.", "Update your account's profile information and email address.": "Update your account's profile information and email address.", - "Validation Error": "Validation Error", "Upload New Images": "Upload New Images", "Uploading new images will replace all existing images.": "Uploading new images will replace all existing images.", "User": "User", @@ -623,7 +695,9 @@ "Utilization Rate": "Utilization Rate", "Utilization Timeline": "稼動時序", "Utilization, OEE and Operational Intelligence": "稼動率、OEE 與營運情報", + "Utilized Time": "Utilized Time", "Valid Until": "Valid Until", + "Validation Error": "Validation Error", "Vending Page": "Vending Page", "Venue Management": "Venue Management", "View Details": "View Details", @@ -639,6 +713,7 @@ "Welcome Gift": "Welcome Gift", "Welcome Gift Status": "Welcome Gift Status", "Work Content": "Work Content", + "Yes, regenerate": "Yes, regenerate", "Yesterday": "Yesterday", "You cannot assign permissions you do not possess.": "You cannot assign permissions you do not possess.", "You cannot delete your own account.": "You cannot delete your own account.", @@ -676,6 +751,11 @@ "menu.basic.machines": "Machine Settings", "menu.basic.payment-configs": "Customer Payment Config", "menu.data-config": "Data Configuration", + "menu.data-config.admin-products": "Product Status", + "menu.data-config.advertisements": "Advertisement Management", + "menu.data-config.badges": "Badge Settings", + "menu.data-config.points": "Point Settings", + "menu.data-config.products": "Product Management", "menu.data-config.sub-account-roles": "Sub Account Roles", "menu.data-config.sub-accounts": "Sub Account Management", "menu.line": "Line Management", @@ -694,6 +774,7 @@ "menu.sales": "Sales Management", "menu.special-permission": "Special Permission", "menu.warehouses": "Warehouse Management", + "min": "min", "of": "of", "permissions": "Permission Settings", "permissions.accounts": "帳號管理", @@ -702,6 +783,7 @@ "remote": "Remote Management", "reservation": "Reservation System", "roles": "Role Permissions", + "s": "s", "sales": "Sales Management", "special-permission": "Special Permission", "super-admin": "超級管理員", @@ -710,79 +792,9 @@ "vs Yesterday": "vs Yesterday", "warehouses": "Warehouse Management", "待填寫": "Pending", - "Enabled": "Enabled", - "Account :name status has been changed to :status.": "Account :name status has been changed to :status.", - "Cannot change Super Admin status.": "Cannot change Super Admin status.", - "Confirm Status Change": "Confirm Status Change", - "Disable Product Confirmation": "Disable Product Confirmation", - "Delete Product Confirmation": "Delete Product Confirmation", - "Are you sure you want to change the status of this product? Disabled products will not be visible on the machine.": "Are you sure you want to change the status of this product? Disabled products will not be visible on the machine.", - "Are you sure you want to delete this product? All related historical translation data will also be removed.": "Are you sure you want to delete this product? All related historical translation data will also be removed.", - "Are you sure you want to change the status? This may affect associated accounts.": "Are you sure you want to change the status? This may affect associated accounts.", - "Confirm Account Status Change": "Confirm Account Status Change", - "Are you sure you want to change the status? After disabling, this account will no longer be able to log in to the system.": "Are you sure you want to change the status? After disabling, this account will no longer be able to log in to the system.", - "Confirm Account Deactivation": "Confirm Deactivation", - "Are you sure you want to deactivate this account? After deactivating, this account will no longer be able to log in to the system.": "Are you sure you want to deactivate this account? After deactivating, this account will no longer be able to log in to the system.", - "Enable": "Enable", - "Disable": "Disable", - "Regenerate": "Regenerate", - "API Token Copied": "API Token Copied", - "Yes, regenerate": "Yes, regenerate", - "Regenerating the token will disconnect the physical machine until it is updated. Continue?": "Regenerating the token will disconnect the physical machine until it is updated. Continue?", - "Error processing request": "Error processing request", - "API Token regenerated successfully.": "API Token regenerated successfully.", - "Product Name (Multilingual)": "Product Name (Multilingual)", - "Material Code": "Material Code", - "Full Points": "Full Points", - "Half Points": "Half Points", - "Half Points Amount": "Half Points Amount", - "Name in Traditional Chinese": "Name in Traditional Chinese", - "Name in English": "Name in English", - "Name in Japanese": "Name in Japanese", - "Track Limit": "Track Limit", - "Spring Limit": "Spring Limit", - "Channel Limits Configuration": "Channel Limits Configuration", - "Manage your catalog, prices, and multilingual details.": "Manage your catalog, prices, and multilingual details.", - "Product created successfully": "Product created successfully", - "Product updated successfully": "Product updated successfully", - "Product deleted successfully": "Product deleted successfully", - "Fill in the product details below": "Fill in the product details below", - "Uncategorized": "Uncategorized", - "Track Channel Limit": "Track Channel Limit", - "Spring Channel Limit": "Spring Channel Limit", - "Product Details": "Product Details", - "Production Company": "Production Company", - "Barcode": "Barcode", - "Specifications": "Specifications", - "Cost": "Cost", - "Member Price": "Member Price", - "Sale Price": "Sale Price", - "Update Product": "Update Product", - "Edit Product": "Edit Product", - "Create Product": "Create Product", - "Are you sure you want to delete this product?": "Are you sure you want to delete this product?", - "Feature Settings": "Feature Settings", - "Enable Material Code": "Enable Material Code", - "Show material code field in products": "Show material code field in products", - "Enable Points": "Enable Points", - "Show points rules in products": "Show points rules in products", - "Customer Details": "Customer Details", - "Current Status": "Current Status", - "Product Image": "Product Image", - "PNG, JPG up to 2MB": "PNG, JPG up to 2MB", - "menu.data-config.products": "Product Management", - "menu.data-config.advertisements": "Advertisement Management", - "menu.data-config.admin-products": "Product Status", - "menu.data-config.points": "Point Settings", - "menu.data-config.badges": "Badge Settings", - "Create New Role": "Create New Role", - "Create Sub Account Role": "Create Sub Account Role", - "Edit Sub Account Role": "Edit Sub Account Role", - "New Role": "New Role", - "Manufacturer": "Manufacturer", - "Product status updated to :status": "Product status updated to :status", - "Customer and associated accounts disabled successfully.": "Customer and associated accounts disabled successfully.", - "Customer enabled successfully.": "Customer enabled successfully.", - "Cannot delete company with active accounts.": "Cannot delete company with active accounts.", - "Customer deleted successfully.": "Customer deleted successfully." -} + "Authorized Accounts Tab": "Authorized Accounts", + "Authorize Btn": "Authorize", + "Authorization updated successfully": "Authorization updated successfully", + "Authorized Status": "Authorized", + "Unauthorized Status": "Unauthorized" +} \ No newline at end of file diff --git a/lang/ja.json b/lang/ja.json index fa7c53c..ca2e0c0 100644 --- a/lang/ja.json +++ b/lang/ja.json @@ -2,6 +2,8 @@ "A new verification link has been sent to your email address.": "新しい確認リンクがメールアドレスに送信されました。", "AI Prediction": "AI予測", "API Token": "API キー", + "API Token Copied": "APIトークンがコピーされました", + "API Token regenerated successfully.": "APIトークンが正常に再生成されました。", "APK Versions": "APKバージョン", "APP Features": "APP機能", "APP Management": "APP管理", @@ -9,6 +11,7 @@ "APP_ID": "APP_ID", "APP_KEY": "APP_KEY", "Account": "帳號", + "Account :name status has been changed to :status.": "アカウント :name のステータスが :status に変更されました。", "Account Management": "アカウント管理", "Account Name": "帳號姓名", "Account Settings": "アカウント設定", @@ -51,11 +54,17 @@ "Analysis Permissions": "分析管理權限", "Apply to all identical products in this machine": "同步套用至此機台內的所有相同商品", "Are you sure to delete this customer?": "この顧客を削除してもよろしいですか?", + "Are you sure you want to change the status of this product? Disabled products will not be visible on the machine.": "この商品のステータスを変更してもよろしいですか?無効にされた商品はマシンに表示されません。", + "Are you sure you want to change the status? After disabling, this account will no longer be able to log in to the system.": "ステータスを変更してもよろしいですか?無効化後、このアカウントはシステムにログインできなくなります。", + "Are you sure you want to change the status? This may affect associated accounts.": "ステータスを変更してもよろしいですか?関連するアカウントに影響する可能性があります。", + "Are you sure you want to deactivate this account? After deactivating, this account will no longer be able to log in to the system.": "アカウントを停止してもよろしいですか?一旦停止するとシステムにログインできなくなります。", "Are you sure you want to delete this account?": "このアカウントを削除してもよろしいですか?", "Are you sure you want to delete this account? This action cannot be undone.": "このアカウントを削除してもよろしいですか?この操作は元に戻せません。", "Are you sure you want to delete this configuration?": "您確定要刪除此金流配置嗎?", "Are you sure you want to delete this configuration? This action cannot be undone.": "この設定を削除してもよろしいですか?この操作は元に戻せません。", "Are you sure you want to delete this item? This action cannot be undone.": "この項目を削除してもよろしいですか?この操作は元に戻せません。", + "Are you sure you want to delete this product?": "この商品を削除してもよろしいですか?", + "Are you sure you want to delete this product? All related historical translation data will also be removed.": "この商品を削除してもよろしいですか?関連するすべての履歴翻訳データも削除されます。", "Are you sure you want to delete this role? This action cannot be undone.": "このロールを削除してもよろしいですか?この操作は元に戻せません。", "Are you sure you want to delete your account?": "真的にアカウントを削除してもよろしいですか?", "Are you sure you want to proceed? This action cannot be undone.": "您確定要繼續嗎?此操作將無法復原。", @@ -69,7 +78,9 @@ "Availability": "可用性 (Availability)", "Available Machines": "可供分配的機台", "Avatar updated successfully.": "アバターが正常に更新されました。", + "Avg Cycle": "平均サイクル", "Badge Settings": "バッジ設定", + "Barcode": "バーコード", "Basic Information": "基本情報", "Basic Settings": "基本設定", "Basic Specifications": "基本仕様", @@ -81,6 +92,8 @@ "Cancel": "キャンセル", "Cancel Purchase": "購入キャンセル", "Cannot Delete Role": "ロールを削除できません", + "Cannot change Super Admin status.": "スーパー管理者のステータスは変更できません。", + "Cannot delete company with active accounts.": "有効なアカウントを持つ顧客を削除できません。", "Cannot delete model that is currently in use by machines.": "機台で使用中の型號は削除できません。", "Cannot delete role with active users.": "アクティブなユーザーがいるロールは削除できません。", "Card Reader": "カードリーダー", @@ -90,6 +103,8 @@ "Category": "カテゴリ", "Change": "変更", "Change Stock": "小銭在庫", + "Channel Limits": "スロット上限", + "Channel Limits Configuration": "スロット上限設定", "ChannelId": "チャンネルID", "ChannelSecret": "チャンネルシークレット", "Checkout Time 1": "決済時間 1", @@ -107,36 +122,48 @@ "Config Name": "配置名稱", "Configuration Name": "設定名称", "Confirm": "確認", - "Contract Period": "契約期間", + "Confirm Account Deactivation": "アカウント停止の確認", + "Confirm Account Status Change": "アカウントステータス変更の確認", "Confirm Deletion": "削除の確認", "Confirm Password": "新しいパスワード(確認)", + "Confirm Status Change": "ステータス変更の確認", "Connecting...": "接続中...", "Connectivity Status": "接続ステータス概況", "Connectivity vs Sales Correlation": "連線狀態與銷售關聯分析", - "Contact Info": "連絡先情報", "Contact & Details": "連絡先と詳細", "Contact Email": "連絡先メールアドレス", + "Contact Info": "連絡先情報", "Contact Name": "連絡担当者名", "Contact Phone": "連絡先電話番号", + "Contract Period": "契約期間", "Contract Until (Optional)": "契約期限 (任意)", + "Cost": "原価", "Coupons": "クーポン", "Create": "作成", "Create Config": "設定を新規作成", "Create Machine": "機台新規作成", + "Create New Role": "新しいロールを作成", "Create Payment Config": "決済設定を新規作成", + "Create Product": "商品を作成", "Create Role": "ロール作成", + "Create Sub Account Role": "サブアカウントロールを作成", "Create a new role and assign permissions.": "新しいロールを作成し、権限を割り当てます。", "Critical": "致命的", - "Current Password": "現在のパスワード", "Current": "現在", - "Current:": "現:", - "Current Type": "現タイプ", + "Current Password": "現在のパスワード", "Current Stock": "現在の在庫", + "Current Type": "現タイプ", + "Current:": "現:", "Customer Info": "顧客情報", "Customer Management": "顧客管理", "Customer Payment Config": "決済設定管理", + "Customer and associated accounts disabled successfully.": "顧客と関連アカウントが正常に無効化されました。", "Customer created successfully.": "顧客が正常に作成されました。", + "Customer deleted successfully.": "顧客が正常に削除されました。", + "Customer enabled successfully.": "顧客が正常に有効化されました。", "Customer updated successfully.": "顧客が正常に更新されました。", + "Cycle Efficiency": "サイクル効率", + "Daily Revenue": "日次収益", "Danger Zone: Delete Account": "危険区域:アカウントの削除", "Dashboard": "ダッシュボード", "Data Configuration": "データ設定", @@ -146,16 +173,19 @@ "Default Not Donate": "デフォルト寄付しない", "Define and manage security roles and permissions.": "システムのセキュリティロールと権限を定義および管理します。", "Define new third-party payment parameters": "新しいサードパーティ決済パラメータを定義", - "Feature Toggles": "機能トグル", "Delete": "削除", "Delete Account": "アカウントの削除", "Delete Permanently": "完全に削除", + "Delete Product Confirmation": "商品削除の確認", "Deposit Bonus": "入金ボーナス", "Describe the repair or maintenance status...": "修理またはメンテナンスの状況を説明してください...", "Deselect All": "取消全選", "Detail": "詳細", "Device Information": "デバイス情報", "Device Status Logs": "デバイス状態ログ", + "Devices": "台のデバイス", + "Disable": "無効にする", + "Disable Product Confirmation": "商品無効化の確認", "Disabled": "停止中", "Discord Notifications": "Discord通知", "Dispense Failed": "出庫失敗", @@ -174,11 +204,18 @@ "Edit Machine Model": "機台型號を編輯", "Edit Machine Settings": "編輯機台設定", "Edit Payment Config": "決済設定を編集", + "Edit Product": "商品を編集", "Edit Role": "ロール編集", "Edit Role Permissions": "ロール権限の編集", "Edit Settings": "設定編集", + "Edit Sub Account Role": "サブアカウントロールを編集", "Email": "メールアドレス", + "Enable": "有効にする", + "Enable Material Code": "資材コードを有効化", + "Enable Points": "ポイントルールを有効化", + "Enabled": "有効中", "Enabled/Disabled": "有効/無効", + "End Date": "終了日", "Engineer": "メンテナンス担当者", "Ensure your account is using a long, random password to stay secure.": "セキュリティを維持するため、アカウントには長くランダムなパスワードを使用してください。", "Enter login ID": "ログインIDを入力してください", @@ -190,16 +227,20 @@ "Enter your password to confirm": "確認のためパスワードを入力してください", "Equipment efficiency and OEE metrics": "設備効率と OEE 指標", "Error": "エラー", - "End Date": "終了日", + "Error processing request": "リクエストの処理中にエラーが発生しました", "Execution Time": "実行時間", "Expired": "期限切れ", "Expired / Disabled": "期限切れ / 停止中", "Expiry Date": "有效日期", "Expiry Management": "有効期限管理", "Failed to fetch machine data.": "無法取得機台資料。", + "Failed to load permissions": "権限の読み込みに失敗しました", "Failed to save permissions.": "無法儲存權限設定。", "Failed to update machine images: ": "機台画像の更新に失敗しました:", + "Feature Settings": "機能設定", + "Feature Toggles": "機能トグル", "Fill in the device repair or maintenance details": "デバイスの修理またはメンテナンスの詳細を入力してください", + "Fill in the product details below": "以下に商品の詳細を入力してください", "Firmware Version": "ファームウェアバージョン", "Fleet Avg OEE": "フリート平均 OEE", "Fleet Performance": "全機隊效能", @@ -207,11 +248,14 @@ "From:": "開始:", "Full Access": "全機台授權", "Full Name": "氏名", + "Full Points": "フルポイント", "Games": "ゲーム", "General permissions not linked to a specific menu.": "未連結到特定選單的一般權限。", "Gift Definitions": "ギフト設定", "Global roles accessible by all administrators.": "適用於所有管理者的全域角色。", "Got it": "了解", + "Half Points": "ハーフポイント", + "Half Points Amount": "ハーフポイント金額", "Hardware & Network": "ハードウェアとネットワーク", "Hardware & Slots": "ハードウェアと貨道", "HashIV": "HashIV", @@ -220,33 +264,9 @@ "Heating End Time": "加熱終了時間", "Heating Range": "加熱時間帯", "Heating Start Time": "加熱開始時間", - "Channel Limits": "スロット上限", "Helper": "ヘルパー", "Home Page": "主画面", - "Machine Utilization": "機台稼働率", - "Machine Registry": "機台登録", - "Avg Cycle": "平均サイクル", - "Cycle Efficiency": "サイクル効率", - "Daily Revenue": "日次収益", - "Real-time fleet efficiency and OEE metrics": "リアルタイムのフリート効率と OEE 指標", - "Real-time performance analytics": "リアルタイム・パフォーマンス分析", - "Reporting Period": "レポート期間", - "Select an asset from the left to start analysis": "分析を開始するには左側のデバイスを選択してください", - "Select date to sync data": "データ同期の日付を選択してください", - "Search serial or name...": "シリアル番号または名称で検索...", - "Serial NO": "シリアル番号", - "OEE Efficiency Trend": "OEE 効率トレンド", - "Online Status": "オンライン状態", - "Optimized Performance": "最適化されたパフォーマンス", - "Output Count": "出力数", - "OEE": "OEE", - "Utilized Time": "稼働時間", - "Units": "ユニット", - "No Machine Selected": "機台が選択されていません", - "No matching machines": "一致する機台が見つかりません", - "min": "分", - "s": "秒", - "Total Gross Value": "総売上額", + "Identity & Codes": "識別とコード", "Info": "情報", "Initial Admin Account": "初期管理者アカウント", "Initial Role": "初期ロール", @@ -257,8 +277,6 @@ "Joined": "入会日", "Key": "キー (Key)", "Key No": "キー番号", - "Identity & Codes": "識別とコード", - "Lease": "リース", "LEVEL TYPE": "層級タイプ", "LINE Pay Direct": "LINE Pay 直結決済", "LINE Pay Direct Settings Description": "LINE Pay 公式直結設定", @@ -269,6 +287,7 @@ "Last Signal": "最終信号時間", "Last Time": "最終時間", "Last Updated": "最終更新", + "Lease": "リース", "Level": "レベル", "Line Coupons": "Lineクーポン", "Line Machines": "Line機台", @@ -278,14 +297,15 @@ "Line Orders": "Line注文", "Line Permissions": "Line管理權限", "Line Products": "Line商品", + "Live Fleet Updates": "ライブフリート更新", "Loading machines...": "正在載入機台...", - "Loyalty & Features": "ロイヤリティと機能", "Loading...": "読み込み中...", "Location": "場所", "Locked Page": "ロック画面", "Login History": "ログイン履歴", "Logout": "ログアウト", "Logs": "ログ", + "Loyalty & Features": "ロイヤリティと機能", "Machine Count": "機台数量", "Machine Details": "機台詳情", "Machine Images": "機台写真", @@ -300,12 +320,14 @@ "Machine Model Settings": "機台型號設定", "Machine Name": "機台名", "Machine Permissions": "機台権限", + "Machine Registry": "機台登録", "Machine Reports": "機台レポート", "Machine Restart": "機台再起動", "Machine Settings": "機台設定", "Machine Status": "機台状態", "Machine Status List": "機台稼働状況リスト", "Machine Stock": "機台在庫", + "Machine Utilization": "機台稼働率", "Machine created successfully.": "機台が正常に作成されました。", "Machine images updated successfully.": "機台画像が正常に更新されました。", "Machine model created successfully.": "機台型號が正常に作成されました。", @@ -322,21 +344,23 @@ "Maintenance QR": "メンテナンス QR", "Maintenance QR Code": "メンテナンス QR コード", "Maintenance Records": "メンテナンス記録", - "Live Fleet Updates": "ライブフリート更新", "Maintenance record created successfully": "メンテナンス記録が正常に作成されました", - "Scan this code to quickly access the maintenance form for this device.": "このコードをスキャンして、このデバイスのメンテナンスフォームに素早くアクセスしてください。", "Manage Account Access": "管理帳號存取", "Manage Expiry": "進入效期管理", "Manage administrative and tenant accounts": "管理者およびテナントアカウントを管理します", "Manage all tenant accounts and validity": "すべてのテナントアカウントと有効期限を管理します", + "Manage your catalog, prices, and multilingual details.": "カタログ、価格、多言語詳細を管理します。", "Manage your machine fleet and operational data": "機台フリートと運用データの管理", "Manage your profile information, security settings, and login history": "プロフィール情報、セキュリティ設定、ログイン履歴の管理", "Management of operational parameters": "機台運作參數管理", "Management of operational parameters and models": "運用パラメータと型番の管理", + "Manufacturer": "製造元", + "Material Code": "物料コード", "Max 3": "最大3枚", "Member & External": "会員と外部システム", "Member List": "会員リスト", "Member Management": "会員管理", + "Member Price": "会員価格", "Member System": "会員システム", "Membership Tiers": "会員ランク", "Menu Permissions": "メニュー権限", @@ -354,13 +378,18 @@ "Monthly Transactions": "今月の取引統計", "Monthly cumulative revenue overview": "今月の累計収益概要", "Name": "氏名", + "Name in English": "英語名", + "Name in Japanese": "日本語名", + "Name in Traditional Chinese": "繁体字中国語名", "Never Connected": "未接続", "New Password": "新しいパスワード", "New Password (leave blank to keep current)": "新しいパスワード (変更しない場合は空欄)", "New Record": "新規記録", + "New Role": "新しいロール", "New Sub Account Role": "新增子帳號角色", "Next": "次へ", "No Invoice": "発票を発行しない", + "No Machine Selected": "機台が選択されていません", "No accounts found": "アカウントが見つかりません", "No alert summary": "アラートなし", "No configurations found": "設定が見つかりません", @@ -377,18 +406,18 @@ "No machines available in this company.": "此客戶目前沒有可供分配的機台。", "No maintenance records found": "メンテナンス記録が見つかりません", "No matching logs found": "一致するログが見つかりません", + "No matching machines": "一致する機台が見つかりません", "No permissions": "権限項目なし", "No roles found.": "ロールが見つかりませんでした。", "No slots found": "未找到貨道資訊", "No users found": "ユーザーが見つかりません", "None": "なし", - "Original": "最初", - "Original Type": "元タイプ", - "Original:": "元:", "Normal": "正常", "Not Used": "未使用", "Not Used Description": "不使用第三方支付介接", "Notes": "備考", + "OEE": "OEE", + "OEE Efficiency Trend": "OEE 効率トレンド", "OEE Score": "OEE スコア", "OEE.Activity": "稼働アクティビティ", "OEE.Errors": "エラー", @@ -402,19 +431,26 @@ "Online": "オンライン", "Online Duration": "累積連線時數", "Online Machines": "オンライン機台", + "Online Status": "オンライン状態", "Only system roles can be assigned to platform administrative accounts.": "プラットフォーム管理アカウントにはシステムロールのみ割り当て可能です。", "Operational Parameters": "運用パラメータ", "Operations": "運用設定", "Optimal": "最適", + "Optimized Performance": "最適化されたパフォーマンス", "Optimized for display. Supported formats: JPG, PNG, WebP.": "表示用に最適化されています。対応形式:JPG, PNG, WebP。", "Optional": "任意", "Order Management": "注文管理", "Orders": "注文", + "Original": "最初", + "Original Type": "元タイプ", + "Original:": "元:", "Other Permissions": "其他權限", "Others": "その他", + "Output Count": "出力数", "Owner": "会社名", "PARTNER_KEY": "パートナーキー", "PI_MERCHANT_ID": "Pi 拍錢包 加盟店ID", + "PNG, JPG up to 2MB": "PNG, JPG (最大 2MB)", "PS_MERCHANT_ID": "全盈+Pay 加盟店ID", "Parameters": "パラメータ設定", "Pass Code": "パスコード", @@ -430,13 +466,12 @@ "Payment Configuration updated successfully.": "決済設定が正常に更新されました。", "Payment Selection": "決済選択", "Pending": "保留中", - "Pricing Information": "価格情報", - "Channel Limits Configuration": "スロット上限設定", "Performance": "パフォーマンス (Performance)", "Permanent": "永久認可", "Permanently Delete Account": "アカウントを永久に削除", "Permission Settings": "権限設定", "Permissions": "権限", + "Permissions updated successfully": "認証が更新されました", "Phone": "電話番号", "Photo Slot": "写真スロット", "Pickup Code": "受取コード", @@ -446,10 +481,22 @@ "Please select a machine to view metrics": "機台を選択して指標を表示してください", "Point Rules": "ポイントルール", "Point Settings": "ポイント設定", + "Points Rule": "ポイントルール", + "Points Settings": "ポイント設定", + "Points toggle": "ポイント切り替え", "Previous": "前へ", + "Pricing Information": "価格情報", + "Product Details": "商品詳細", + "Product Image": "商品画像", "Product Management": "商品管理", + "Product Name (Multilingual)": "商品名 (多言語)", "Product Reports": "商品レポート", "Product Status": "商品狀態", + "Product created successfully": "商品が正常に作成されました", + "Product deleted successfully": "商品が正常に削除されました", + "Product status updated to :status": "商品ステータスが :status に更新されました", + "Product updated successfully": "商品が正常に更新されました", + "Production Company": "製造会社", "Profile": "プロフィール", "Profile Information": "プロフィール情報", "Profile Settings": "個人設定", @@ -467,10 +514,14 @@ "Quick search...": "クイック検索...", "Real-time OEE analysis awaits": "リアルタイム OEE 分析待機中", "Real-time Operation Logs (Last 50)": "リアルタイム操作ログ (直近 50 件)", + "Real-time fleet efficiency and OEE metrics": "リアルタイムのフリート効率と OEE 指標", "Real-time monitoring across all machines": "全機台のリアルタイム監視", + "Real-time performance analytics": "リアルタイム・パフォーマンス分析", "Real-time status monitoring": "リアルタイムステータス監視", "Receipt Printing": "レシート印刷", "Recent Login": "最近のログイン", + "Regenerate": "再生成する", + "Regenerating the token will disconnect the physical machine until it is updated. Continue?": "トークンを再生成すると、更新されるまで物理マシンの接続が切断されます。続行しますか?", "Remote Change": "リモートお釣り", "Remote Checkout": "リモート決済", "Remote Dispense": "リモート出庫", @@ -483,6 +534,7 @@ "Replenishment Page": "補充画面", "Replenishment Records": "補充記録", "Replenishments": "補充", + "Reporting Period": "レポート期間", "Reservation Members": "予約会員", "Reservation System": "予約システム", "Reservations": "予約", @@ -500,13 +552,11 @@ "Role name already exists in this company.": "この会社には同じ名前のロールが既に存在します。", "Role not found.": "ロールが見つかりませんでした。", "Role updated successfully.": "ロールが正常に更新されました。", - "Points Rule": "ポイントルール", - "Points Settings": "ポイント設定", - "Points toggle": "ポイント切り替え", "Roles": "ロール権限", "Roles scoped to specific customer companies.": "各顧客企業専用のロール。", "Running Status": "稼働状況", "SYSTEM": "システムレベル", + "Sale Price": "販売価格", "Sales": "銷售管理", "Sales Activity": "銷售活動", "Sales Management": "販売管理", @@ -519,14 +569,16 @@ "Saved.": "保存されました", "Saving...": "儲存中...", "Scale level and access control": "層級與存取控制", + "Scan this code to quickly access the maintenance form for this device.": "このコードをスキャンして、このデバイスのメンテナンスフォームに素早くアクセスしてください。", "Search configurations...": "設定を検索...", "Search customers...": "顧客を検索...", "Search machines by name or serial...": "名称またはシリアル番号で検索...", - "Search machines...": "機台を検索...", + "Search machines...": "マシン名またはシリアル番号で検索...", "Search models...": "型番を検索...", "Search roles...": "ロールを検索...", "Search serial no or name...": "シリアル番号または名前を検索...", "Search serial or machine...": "シリアルまたはマシンを検索...", + "Search serial or name...": "シリアル番号または名称で検索...", "Search users...": "ユーザーを検索...", "Select All": "全選", "Select Company": "会社名を選択", @@ -535,12 +587,18 @@ "Select Model": "型番を選択", "Select Owner": "会社名を選択", "Select a machine to deep dive": "請選擇機台以開始深度分析", + "Select an asset from the left to start analysis": "分析を開始するには左側のデバイスを選択してください", + "Select date to sync data": "データ同期の日付を選択してください", "Selected": "已選擇", "Selected Date": "查詢日期", + "Selection": "選択済み", "Serial & Version": "シリアルとバージョン", + "Serial NO": "シリアル番号", "Serial No": "機台シリアル番号", "Serial Number": "シリアル番号", "Show": "表示", + "Show material code field in products": "商品情報に資材コードフィールドを表示する", + "Show points rules in products": "商品情報にポイントルール相關フィールドを表示する", "Showing": "表示中", "Showing :from to :to of :total items": ":total 件中 :from から :to 件を表示", "Sign in to your account": "アカウントにサインイン", @@ -551,7 +609,12 @@ "Slot Test": "テスト中", "Some fields need attention": "一部のフィールドに注意が必要です", "Special Permission": "特別権限", + "Specifications": "規格", + "Spring Channel Limit": "スプリング上限", + "Spring Limit": "スプリング上限", "Staff Stock": "スタッフ在庫", + "Start Date": "開始日", + "Statistics": "統計データ", "Status": "ステータス", "Status / Temp / Sub / Card / Scan": "状態 / 温度 / 下位機 / カード / スキャン", "Stock Management": "在庫管理", @@ -559,7 +622,6 @@ "Store ID": "加盟店ID (MerchantID)", "Store Management": "店舗管理", "StoreID": "加盟店ID (StoreID)", - "Start Date": "開始日", "Sub Account Management": "サブアカウント管理", "Sub Account Roles": "サブアカウントロール", "Sub Accounts": "サブアカウント", @@ -570,6 +632,7 @@ "Super Admin": "スーパー管理者", "Super-admin role cannot be assigned to tenant accounts.": "スーパー管理者ロールはテナントアカウントに割り当てることはできません。", "Survey Analysis": "アンケート分析", + "Syncing Permissions...": "権限を同期中...", "System Default": "系統預設", "System Level": "システムレベル", "System Official": "公式", @@ -582,7 +645,6 @@ "Systems Initializing": "システム初期化中", "TapPay Integration": "TapPay 統合決済", "TapPay Integration Settings Description": "TapPay 決済連携設定", - "Statistics": "統計データ", "Target": "ターゲット", "Tax ID (Optional)": "納税者番号 (任意)", "Temperature": "温度", @@ -602,24 +664,30 @@ "Total Connected": "接続数合計", "Total Customers": "顧客總數", "Total Daily Sales": "本日累計銷量", + "Total Gross Value": "総売上額", "Total Logins": "總ログイン數", "Total Selected": "已選擇總數", "Total Slots": "合計スロット数", "Total items": "合計 :count 件", + "Track Channel Limit": "ベルトコンベア上限", + "Track Limit": "ベルトコンベア上限", "Track device health and maintenance history": "デバイスの健全性とメンテナンス履歴を追跡します", "Transfer Audit": "転送監査", "Transfers": "転送", "Tutorial Page": "チュートリアル画面", "Type": "タイプ", "UI Elements": "UI要素", + "Uncategorized": "未分類", "Unified Operational Timeline": "整合式營運時序圖", + "Units": "ユニット", "Unknown": "不明", "Update": "更新", + "Update Authorization": "権限を更新", "Update Customer": "顧客を更新", "Update Password": "パスワードの更新", + "Update Product": "商品を更新", "Update existing role and permissions.": "既存のロールと権限を更新します。", "Update your account's profile information and email address.": "アカウントの氏名、電話番号、メールアドレスを更新します。", - "Validation Error": "検証エラー", "Upload New Images": "新しい写真をアップロード", "Uploading new images will replace all existing images.": "新しい写真をアップロードすると、既存のすべての写真が置き換えられます。", "User": "一般ユーザー", @@ -629,7 +697,9 @@ "Utilization Rate": "稼働率", "Utilization Timeline": "稼動時序", "Utilization, OEE and Operational Intelligence": "稼動率、OEE と運用インテリジェンス", + "Utilized Time": "稼働時間", "Valid Until": "有効期限", + "Validation Error": "検証エラー", "Vending Page": "販売画面", "Venue Management": "会場管理", "View Details": "詳細表示", @@ -645,6 +715,7 @@ "Welcome Gift": "会員登録特典", "Welcome Gift Status": "来店特典", "Work Content": "作業内容", + "Yes, regenerate": "はい、再生成します", "Yesterday": "昨日", "You cannot assign permissions you do not possess.": "ご自身が所有していない権限を割り當てることはできません。", "You cannot delete your own account.": "ご自身のアカウントは削除できません。", @@ -682,6 +753,11 @@ "menu.basic.machines": "機台設定", "menu.basic.payment-configs": "決済設定管理", "menu.data-config": "データ設定", + "menu.data-config.admin-products": "商品ステータス", + "menu.data-config.advertisements": "広告管理", + "menu.data-config.badges": "バッジ設定", + "menu.data-config.points": "ポイント設定", + "menu.data-config.products": "商品管理", "menu.data-config.sub-account-roles": "サブアカウントロール", "menu.data-config.sub-accounts": "サブアカウント管理", "menu.line": "LINE 設定", @@ -700,6 +776,7 @@ "menu.sales": "売上レポート", "menu.special-permission": "特殊権限", "menu.warehouses": "倉庫管理", + "min": "分", "of": "件中", "permissions": "權限設定", "permissions.accounts": "帳號管理", @@ -708,6 +785,7 @@ "remote": "リモート管理", "reservation": "予約システム", "roles": "ロール權限", + "s": "秒", "sales": "販売管理", "special-permission": "特別権限", "super-admin": "超級管理員", @@ -716,76 +794,10 @@ "vs Yesterday": "前日比", "warehouses": "倉庫管理", "待填寫": "待填寫", - "Enabled": "有効中", - "Account :name status has been changed to :status.": "アカウント :name のステータスが :status に変更されました。", - "Cannot change Super Admin status.": "スーパー管理者のステータスは変更できません。", - "Confirm Status Change": "ステータス変更の確認", - "Disable Product Confirmation": "商品無効化の確認", - "Delete Product Confirmation": "商品削除の確認", - "Are you sure you want to change the status of this product? Disabled products will not be visible on the machine.": "この商品のステータスを変更してもよろしいですか?無効にされた商品はマシンに表示されません。", - "Are you sure you want to delete this product? All related historical translation data will also be removed.": "この商品を削除してもよろしいですか?関連するすべての履歴翻訳データも削除されます。", - "Are you sure you want to change the status? This may affect associated accounts.": "ステータスを変更してもよろしいですか?関連するアカウントに影響する可能性があります。", - "Confirm Account Status Change": "アカウントステータス変更の確認", - "Are you sure you want to change the status? After disabling, this account will no longer be able to log in to the system.": "ステータスを変更してもよろしいですか?無効化後、このアカウントはシステムにログインできなくなります。", - "Confirm Account Deactivation": "アカウント停止の確認", - "Are you sure you want to deactivate this account? After deactivating, this account will no longer be able to log in to the system.": "アカウントを停止してもよろしいですか?一旦停止するとシステムにログインできなくなります。", - "Enable": "有効にする", - "Disable": "無効にする", - "Regenerate": "再生成する", - "API Token Copied": "APIトークンがコピーされました", - "Yes, regenerate": "はい、再生成します", - "Regenerating the token will disconnect the physical machine until it is updated. Continue?": "トークンを再生成すると、更新されるまで物理マシンの接続が切断されます。続行しますか?", - "Error processing request": "リクエストの処理中にエラーが発生しました", - "API Token regenerated successfully.": "APIトークンが正常に再生成されました。", - "Product Name (Multilingual)": "商品名 (多言語)", - "Material Code": "物料コード", - "Full Points": "フルポイント", - "Half Points": "ハーフポイント", - "Half Points Amount": "ハーフポイント金額", - "Name in Traditional Chinese": "繁体字中国語名", - "Name in English": "英語名", - "Name in Japanese": "日本語名", - "Track Limit": "ベルトコンベア上限", - "Spring Limit": "スプリング上限", - "Manage your catalog, prices, and multilingual details.": "カタログ、価格、多言語詳細を管理します。", - "Product created successfully": "商品が正常に作成されました", - "Product updated successfully": "商品が正常に更新されました", - "Product deleted successfully": "商品が正常に削除されました", - "Fill in the product details below": "以下に商品の詳細を入力してください", - "Uncategorized": "未分類", - "Track Channel Limit": "ベルトコンベア上限", - "Spring Channel Limit": "スプリング上限", - "Product Details": "商品詳細", - "Production Company": "製造会社", - "Barcode": "バーコード", - "Specifications": "規格", - "Cost": "原価", - "Member Price": "会員価格", - "Sale Price": "販売価格", - "Update Product": "商品を更新", - "Edit Product": "商品を編集", - "Create Product": "商品を作成", - "Are you sure you want to delete this product?": "この商品を削除してもよろしいですか?", - "Feature Settings": "機能設定", - "Enable Material Code": "資材コードを有効化", - "Show material code field in products": "商品情報に資材コードフィールドを表示する", - "Enable Points": "ポイントルールを有効化", - "Show points rules in products": "商品情報にポイントルール相關フィールドを表示する", - "Product Image": "商品画像", - "PNG, JPG up to 2MB": "PNG, JPG (最大 2MB)", - "menu.data-config.products": "商品管理", - "menu.data-config.advertisements": "広告管理", - "menu.data-config.admin-products": "商品ステータス", - "menu.data-config.points": "ポイント設定", - "menu.data-config.badges": "バッジ設定", - "Create New Role": "新しいロールを作成", - "Create Sub Account Role": "サブアカウントロールを作成", - "Edit Sub Account Role": "サブアカウントロールを編集", - "New Role": "新しいロール", - "Manufacturer": "製造元", - "Product status updated to :status": "商品ステータスが :status に更新されました", - "Customer and associated accounts disabled successfully.": "顧客と関連アカウントが正常に無効化されました。", - "Customer enabled successfully.": "顧客が正常に有効化されました。", - "Cannot delete company with active accounts.": "有効なアカウントを持つ顧客を削除できません。", - "Customer deleted successfully.": "顧客が正常に削除されました。" -} + "Authorized Accounts Tab": "認定アカウント", + "Authorize Btn": "認可", + "Authorized Machines Management": "認定機台管理", + "Authorization updated successfully": "認証が更新されました", + "Authorized Status": "認可済み", + "Unauthorized Status": "未認可" +} \ No newline at end of file diff --git a/lang/zh_TW.json b/lang/zh_TW.json index 59ec011..7041710 100644 --- a/lang/zh_TW.json +++ b/lang/zh_TW.json @@ -2,6 +2,8 @@ "A new verification link has been sent to your email address.": "已將新的驗證連結發送至您的電子郵件地址。", "AI Prediction": "AI智能預測", "API Token": "API 金鑰", + "API Token Copied": "API 金鑰已複製", + "API Token regenerated successfully.": "API 金鑰重新產生成功。", "APK Versions": "APK版本", "APP Features": "APP功能", "APP Management": "APP管理", @@ -9,6 +11,8 @@ "APP_ID": "APP_ID", "APP_KEY": "APP_KEY", "Account": "帳號", + "Account :name status has been changed to :status.": "帳號 :name 的狀態已變更為 :status。", + "Account Info": "帳號資訊", "Account Management": "帳號管理", "Account Name": "帳號名稱", "Account Settings": "帳戶設定", @@ -21,11 +25,13 @@ "Action": "操作", "Actions": "操作", "Active": "使用中", + "Active Status": "啟用狀態", "Add Account": "新增帳號", "Add Customer": "新增客戶", "Add Machine": "新增機台", "Add Machine Model": "新增機台型號", "Add Maintenance Record": "新增維修管理單", + "Add Product": "新增商品", "Add Role": "新增角色", "Admin": "管理員", "Admin Name": "名稱", @@ -35,7 +41,7 @@ "Administrator": "管理員", "Advertisement Management": "廣告管理", "Affiliated Unit": "公司名稱", - "Affiliation": "公司名稱", + "Affiliation": "所屬單位", "Alert Summary": "告警摘要", "Alerts": "中心告警", "Alerts Pending": "待處理告警", @@ -51,11 +57,17 @@ "Analysis Permissions": "分析管理權限", "Apply to all identical products in this machine": "同步套用至此機台內的所有相同商品", "Are you sure to delete this customer?": "您確定要刪除此客戶嗎?", + "Are you sure you want to change the status of this product? Disabled products will not be visible on the machine.": "確定要變更此商品的狀態嗎?停用的商品將不會在機台上顯示。", + "Are you sure you want to change the status? After disabling, this account will no longer be able to log in to the system.": "您確定要變更狀態嗎?停用之後,該帳號將會立即被登出且無法再登入系統。", + "Are you sure you want to change the status? This may affect associated accounts.": "您確定要變更狀態嗎?這可能會影響相關帳號的權限效力。", + "Are you sure you want to deactivate this account? After deactivating, this account will no longer be able to log in to the system.": "確定要停用此帳號嗎?停用後將無法登入系統。", "Are you sure you want to delete this account?": "您確定要刪除此帳號嗎?", "Are you sure you want to delete this account? This action cannot be undone.": "確定要刪除此帳號嗎?此操作無法復原。", "Are you sure you want to delete this configuration?": "您確定要刪除此金流配置嗎?", "Are you sure you want to delete this configuration? This action cannot be undone.": "您確定要刪除此金流配置嗎?此操作將無法復原。", "Are you sure you want to delete this item? This action cannot be undone.": "確定要刪除此項目嗎?此操作無法復原。", + "Are you sure you want to delete this product?": "您確定要刪除此商品嗎?", + "Are you sure you want to delete this product? All related historical translation data will also be removed.": "確定要刪除此商品嗎?所有相關的歷史翻譯數據也將被移除。", "Are you sure you want to delete this role? This action cannot be undone.": "您確定要刪除此角色嗎?此操作將無法復原。", "Are you sure you want to delete your account?": "您確定要刪除您的帳號嗎?", "Are you sure you want to proceed? This action cannot be undone.": "您確定要繼續嗎?此操作將無法復原。", @@ -65,20 +77,29 @@ "Assigned Machines": "授權機台", "Audit Management": "稽核管理", "Audit Permissions": "稽核管理權限", + "Authorize": "授權", + "Authorized Accounts": "授權帳號", "Authorized Machines": "授權機台", + "Authorized Machines Management": "授權機台管理", "Availability": "可用性 (Availability)", "Available Machines": "可供分配的機台", "Avatar updated successfully.": "頭像已成功更新。", + "Avg Cycle": "平均週期", "Badge Settings": "識別證", + "Barcode": "條碼", "Basic Information": "基本資訊", "Basic Settings": "基本設定", "Basic Specifications": "基本規格", "Batch No": "批號", "Belongs To": "公司名稱", "Belongs To Company": "公司名稱", + "Business Type": "業務類型", + "Buyout": "買斷", "Cancel": "取消", "Cancel Purchase": "取消購買", "Cannot Delete Role": "無法刪除該角色", + "Cannot change Super Admin status.": "無法變更超級管理員的狀態。", + "Cannot delete company with active accounts.": "無法刪除仍有客用帳號的客戶。", "Cannot delete model that is currently in use by machines.": "無法刪除目前正在被機台使用的型號。", "Cannot delete role with active users.": "無法刪除已有綁定帳號的角色。", "Card Reader": "刷卡機", @@ -88,6 +109,9 @@ "Category": "類別", "Change": "更換", "Change Stock": "零錢庫存", + "Channel Limits": "貨道上限", + "Channel Limits (Track/Spring)": "貨道上限 (履帶/彈簧)", + "Channel Limits Configuration": "貨道上限配置", "ChannelId": "ChannelId", "ChannelSecret": "ChannelSecret", "Checkout Time 1": "卡機結帳時間1", @@ -105,35 +129,50 @@ "Config Name": "配置名稱", "Configuration Name": "配置名稱", "Confirm": "確認", + "Confirm Account Deactivation": "停用帳號確認", + "Confirm Account Status Change": "帳號狀態變更確認", "Confirm Deletion": "確認刪除資料", "Confirm Password": "確認新密碼", + "Confirm Status Change": "確認變更狀態", "Connecting...": "連線中", "Connectivity Status": "連線狀態概況", "Connectivity vs Sales Correlation": "連線狀態與銷售關聯分析", - "Contact Info": "聯絡資訊", "Contact & Details": "聯絡資訊與詳情", "Contact Email": "聯絡人信箱", + "Contact Info": "聯絡資訊", "Contact Name": "聯絡人姓名", "Contact Phone": "聯絡人電話", + "Contract Period": "合約期間", "Contract Until (Optional)": "合約到期日 (選填)", + "Cost": "成本", "Coupons": "優惠券", "Create": "建立", "Create Config": "建立配置", "Create Machine": "新增機台", + "Create New Role": "建立新角色", "Create Payment Config": "新增金流配置", + "Create Product": "建立商品", "Create Role": "建立角色", + "Create Sub Account Role": "建立子帳號角色", "Create a new role and assign permissions.": "建立新角色並分配對應權限。", "Critical": "嚴重", + "Current": "當前", "Current Password": "當前密碼", + "Current Status": "當前狀態", "Current Stock": "當前庫存", + "Current Type": "當前類型", + "Current:": "現:", + "Customer Details": "客戶詳情", "Customer Info": "客戶資訊", "Customer Management": "客戶管理", "Customer Payment Config": "客戶金流設定", + "Customer and associated accounts disabled successfully.": "客戶及其關聯帳號已成功停用。", "Customer created successfully.": "客戶新增成功。", + "Customer deleted successfully.": "客戶已成功刪除。", + "Customer enabled successfully.": "客戶已成功啟用。", "Customer updated successfully.": "客戶更新成功。", - "Current Type": "當前類型", - "Current:": "現:", - "Contract Period": "合約期間", + "Cycle Efficiency": "週期效率", + "Daily Revenue": "當日營收", "Danger Zone: Delete Account": "危險區域:刪除帳號", "Dashboard": "儀表板", "Data Configuration": "資料設定", @@ -143,16 +182,20 @@ "Default Not Donate": "預設不捐贈", "Define and manage security roles and permissions.": "定義並管理系統安全角色與權限。", "Define new third-party payment parameters": "定義新的第三方支付參數", - "Feature Toggles": "功能開關", "Delete": "刪除", "Delete Account": "刪除帳號", "Delete Permanently": "確認永久刪除資料", + "Delete Product": "刪除商品", + "Delete Product Confirmation": "刪除商品確認", "Deposit Bonus": "儲值回饋", "Describe the repair or maintenance status...": "請描述維修或保養狀況...", "Deselect All": "取消全選", "Detail": "詳細", "Device Information": "設備資訊", "Device Status Logs": "設備狀態紀錄", + "Devices": "台設備", + "Disable": "停用", + "Disable Product Confirmation": "停用商品確認", "Disabled": "已停用", "Discord Notifications": "Discord通知", "Dispense Failed": "出貨失敗", @@ -171,12 +214,20 @@ "Edit Machine Model": "編輯機台型號", "Edit Machine Settings": "編輯機台設定", "Edit Payment Config": "編輯金流配置", + "Edit Product": "編輯商品", "Edit Role": "編輯角色", "Edit Role Permissions": "編輯角色權限", "Edit Settings": "編輯設定", + "Edit Sub Account Role": "編輯子帳號角色", "Email": "電子郵件", + "Enable": "啟用", + "Enable Material Code": "啟用物料編號", + "Enable Points": "啟用點數規則", + "Enabled": "已啟用", "Enabled/Disabled": "啟用/停用", + "End Date": "截止日", "Engineer": "維修人員", + "English": "英文", "Ensure your account is using a long, random password to stay secure.": "確保您的帳號使用了足夠強度的隨機密碼以維持安全。", "Enter login ID": "請輸入登入帳號", "Enter machine location": "請輸入機台地點", @@ -186,31 +237,36 @@ "Enter serial number": "請輸入機台序號", "Enter your password to confirm": "請輸入您的密碼以確認", "Equipment efficiency and OEE metrics": "設備效能與 OEE 綜合指標", - "Avg Cycle": "平均週期", - "Cycle Efficiency": "週期效率", "Error": "異常", + "Error processing request": "處理請求時發生錯誤", "Execution Time": "執行時間", "Expired": "已過期", "Expired / Disabled": "已過期 / 停用", "Expiry Date": "有效日期", "Expiry Management": "效期管理", "Failed to fetch machine data.": "無法取得機台資料。", + "Failed to load permissions": "載入權限失敗", "Failed to save permissions.": "無法儲存權限設定。", "Failed to update machine images: ": "更新機台圖片失敗:", + "Feature Settings": "功能設定", + "Feature Toggles": "功能開關", "Fill in the device repair or maintenance details": "填寫設備維修或保養詳情", + "Fill in the product details below": "請在下方填寫商品的詳細資訊", "Firmware Version": "韌體版本", "Fleet Avg OEE": "全機台平均 OEE", - "Daily Revenue": "當日營收", "Fleet Performance": "全機台效能", "From": "從", "From:": "起:", "Full Access": "全機台授權", "Full Name": "名稱", + "Full Points": "全點數", "Games": "互動遊戲", "General permissions not linked to a specific menu.": "未連結到特定選單的一般權限。", "Gift Definitions": "禮品設定", "Global roles accessible by all administrators.": "適用於所有管理者的全域角色。", "Got it": "知道了", + "Half Points": "半點數", + "Half Points Amount": "半點數金額", "Hardware & Network": "硬體與網路", "Hardware & Slots": "硬體與貨道", "HashIV": "HashIV", @@ -219,9 +275,9 @@ "Heating End Time": "關閉-加熱時間", "Heating Range": "加熱時段", "Heating Start Time": "開啟-加熱時間", - "Channel Limits": "貨道上限", "Helper": "小幫手", "Home Page": "主頁面", + "Identity & Codes": "識別與代碼", "Info": "一般", "Initial Admin Account": "初始管理帳號", "Initial Role": "初始角色", @@ -229,10 +285,10 @@ "Invoice Status": "發票開立狀態", "Items": "個項目", "JKO_MERCHANT_ID": "街口支付 商店代號", + "Japanese": "日文", "Joined": "加入日期", "Key": "金鑰 (Key)", "Key No": "鑰匙編號", - "Identity & Codes": "識別與代碼", "LEVEL TYPE": "層級類型", "LINE Pay Direct": "LINE Pay 官方直連", "LINE Pay Direct Settings Description": "LINE Pay 官方直連設定", @@ -243,6 +299,7 @@ "Last Signal": "最後訊號時間", "Last Time": "最後時間", "Last Updated": "最後更新日期", + "Lease": "租賃", "Level": "層級", "Line Coupons": "Line優惠券", "Line Machines": "Line機台", @@ -252,14 +309,15 @@ "Line Orders": "Line訂單", "Line Permissions": "Line 管理權限", "Line Products": "Line商品", + "Live Fleet Updates": "即時數據更新", "Loading machines...": "正在載入機台...", - "Loyalty & Features": "行銷與點數", "Loading...": "載入中...", "Location": "位置", "Locked Page": "鎖定頁", "Login History": "登入歷史", "Logout": "登出", "Logs": "日誌", + "Loyalty & Features": "行銷與點數", "Machine Count": "機台數量", "Machine Details": "機台詳情", "Machine Images": "機台照片", @@ -274,12 +332,14 @@ "Machine Model Settings": "機台型號設定", "Machine Name": "機台名稱", "Machine Permissions": "授權機台", + "Machine Registry": "機台清冊", "Machine Reports": "機台報表", "Machine Restart": "機台重啟", "Machine Settings": "機台設定", "Machine Status": "機台狀態", "Machine Status List": "機台運行狀態列表", "Machine Stock": "機台庫存", + "Machine Utilization": "機台稼動率", "Machine created successfully.": "機台已成功建立。", "Machine images updated successfully.": "機台圖片已成功更新。", "Machine model created successfully.": "機台型號已成功建立。", @@ -288,8 +348,6 @@ "Machine settings updated successfully.": "機台設定已成功更新。", "Machines": "機台列表", "Machines Online": "在線機台數", - "Machine Utilization": "機台稼動率", - "Machine Registry": "機台清冊", "Maintenance": "保養", "Maintenance Content": "維修內容", "Maintenance Date": "維修日期", @@ -298,21 +356,24 @@ "Maintenance QR": "維修掃描碼", "Maintenance QR Code": "維修掃描碼", "Maintenance Records": "維修管理單", - "Live Fleet Updates": "即時數據更新", "Maintenance record created successfully": "維修紀錄已成功建立", - "Scan this code to quickly access the maintenance form for this device.": "掃描此 QR Code 即可快速進入此設備的維修單填寫頁面。", "Manage Account Access": "管理帳號存取", "Manage Expiry": "進入效期管理", "Manage administrative and tenant accounts": "管理系統管理者與租戶帳號", "Manage all tenant accounts and validity": "管理所有租戶帳號與合約效期", + "Manage your catalog, prices, and multilingual details.": "管理您的商品型錄、價格及多語系詳情。", "Manage your machine fleet and operational data": "管理您的機台群組與營運數據", "Manage your profile information, security settings, and login history": "管理您的個人資訊、安全設定與登入紀錄", "Management of operational parameters": "機台運作參數管理", "Management of operational parameters and models": "管理運作參數與型號", + "Manufacturer": "製造商", + "Material Code": "物料代碼", "Max 3": "最多 3 張", + "Member": "會員價", "Member & External": "會員與外部系統", "Member List": "會員列表", "Member Management": "會員管理", + "Member Price": "會員價", "Member System": "會員系統", "Membership Tiers": "會員等級", "Menu Permissions": "選單權限", @@ -321,7 +382,6 @@ "Message": "訊息", "Message Content": "日誌內容", "Message Display": "訊息顯示", - "min": "分", "Min 8 characters": "至少 8 個字元", "Model": "機台型號", "Model Name": "型號名稱", @@ -331,14 +391,19 @@ "Monthly Transactions": "本月交易統計", "Monthly cumulative revenue overview": "本月累計營收概況", "Name": "名稱", + "Name in English": "英文名稱", + "Name in Japanese": "日文名稱", + "Name in Traditional Chinese": "繁體中文名稱", "Never Connected": "從未連線", "New Password": "新密碼", "New Password (leave blank to keep current)": "新密碼 (若不修改請留空)", "New Record": "新增單據", + "New Role": "新角色", "New Sub Account Role": "新增子帳號角色", - "No Company": "系統", "Next": "下一頁", + "No Company": "系統", "No Invoice": "不開立發票", + "No Machine Selected": "尚未選擇機台", "No accounts found": "找不到帳號資料", "No alert summary": "暫無告警記錄", "No configurations found": "暫無相關配置", @@ -354,9 +419,8 @@ "No machines available": "目前沒有可供分配的機台", "No machines available in this company.": "此客戶目前沒有可供分配的機台。", "No maintenance records found": "找不到維修紀錄", - "No Machine Selected": "尚未選擇機台", - "No matching machines": "找不到符合的機台", "No matching logs found": "找不到符合條件的日誌", + "No matching machines": "找不到符合的機台", "No permissions": "無權限項目", "No roles found.": "找不到角色資料。", "No slots found": "未找到貨道資訊", @@ -366,11 +430,8 @@ "Not Used": "不使用", "Not Used Description": "不使用第三方支付介接", "Notes": "備註", - "OEE Score": "OEE 綜合得分", "OEE Efficiency Trend": "OEE 效率趨勢", - "Online Status": "在線狀態", - "Optimized Performance": "效能優化", - "Output Count": "出貨數量", + "OEE Score": "OEE 綜合得分", "OEE.Activity": "營運活動", "OEE.Errors": "異常", "OEE.Hours": "小時", @@ -383,21 +444,28 @@ "Online": "線上", "Online Duration": "累積連線時數", "Online Machines": "在線機台", + "Online Status": "在線狀態", "Only system roles can be assigned to platform administrative accounts.": "僅系統角色可指派給平台管理帳號。", "Operational Parameters": "運作參數", "Operations": "運作設定", "Optimal": "良好", + "Optimized Performance": "效能優化", "Optimized for display. Supported formats: JPG, PNG, WebP.": "已針對顯示進行優化。支援格式:JPG, PNG, WebP。", "Optional": "選填", "Order Management": "訂單管理", "Orders": "購買單", + "Original": "原始", + "Original Type": "原始類型", + "Original:": "原:", "Other Permissions": "其他權限", "Others": "其他功能", + "Output Count": "出貨數量", "Owner": "公司名稱", "PARTNER_KEY": "PARTNER_KEY", "PI_MERCHANT_ID": "Pi 拍錢包 商店代號", - "PS_MERCHANT_ID": "全盈+Pay 商店代號", + "PNG, JPG up to 2MB": "支援 PNG, JPG (最大 2MB)", "PS_LEVEL": "PS_LEVEL", + "PS_MERCHANT_ID": "全盈+Pay 商店代號", "Parameters": "參數設定", "Pass Code": "通行碼", "Pass Codes": "通行碼", @@ -412,12 +480,12 @@ "Payment Configuration updated successfully.": "金流設定已成功更新。", "Payment Selection": "付款選擇", "Pending": "待核效期", - "Pricing Information": "價格資訊", "Performance": "效能 (Performance)", "Permanent": "永久授權", "Permanently Delete Account": "永久刪除帳號", "Permission Settings": "權限設定", "Permissions": "權限", + "Permissions updated successfully": "授權更新成功", "Phone": "手機號碼", "Photo Slot": "照片欄位", "Pickup Code": "取貨碼", @@ -427,10 +495,24 @@ "Please select a machine to view metrics": "請選擇機台以查看數據", "Point Rules": "點數規則", "Point Settings": "點數設定", + "Points Rule": "點數規則", + "Points Settings": "點數設定", + "Points toggle": "點數開關", "Previous": "上一頁", + "Price / Member": "售價 / 會員價", + "Pricing Information": "價格資訊", + "Product Details": "商品詳情", + "Product Image": "商品圖片", + "Product Info": "商品資訊", "Product Management": "商品管理", + "Product Name (Multilingual)": "商品名稱 (多語系)", "Product Reports": "商品報表", "Product Status": "商品狀態", + "Product created successfully": "商品已成功建立", + "Product deleted successfully": "商品已成功刪除", + "Product status updated to :status": "商品狀態已更新為 :status", + "Product updated successfully": "商品已成功更新", + "Production Company": "生產公司", "Profile": "個人檔案", "Profile Information": "個人基本資料", "Profile Settings": "個人設定", @@ -447,14 +529,15 @@ "Quick Select": "快速選取", "Quick search...": "快速搜尋...", "Real-time OEE analysis awaits": "即時 OEE 分析預備中", - "Real-time fleet efficiency and OEE metrics": "全機台即時效率與 OEE 指標", - "Real-time performance analytics": "即時效能分析", - "Reporting Period": "報表區間", "Real-time Operation Logs (Last 50)": "即時操作日誌 (最後 50 筆)", + "Real-time fleet efficiency and OEE metrics": "全機台即時效率與 OEE 指標", "Real-time monitoring across all machines": "跨機台即時狀態監控", + "Real-time performance analytics": "即時效能分析", "Real-time status monitoring": "即時監控機台連線動態", "Receipt Printing": "收據簽單", "Recent Login": "最近登入", + "Regenerate": "重新產生", + "Regenerating the token will disconnect the physical machine until it is updated. Continue?": "重新產生金鑰將導致實體機台暫時失去連線,必須於機台端更新此新金鑰才能恢復。確定繼續嗎?", "Remote Change": "遠端找零", "Remote Checkout": "遠端結帳", "Remote Dispense": "遠端出貨", @@ -467,9 +550,11 @@ "Replenishment Page": "補貨頁", "Replenishment Records": "機台補貨紀錄", "Replenishments": "機台補貨單", + "Reporting Period": "報表區間", "Reservation Members": "預約會員", "Reservation System": "預約系統", "Reservations": "預約管理", + "Retail Price": "零售價", "Returns": "回庫單", "Risk": "風險狀態", "Role": "角色", @@ -484,14 +569,11 @@ "Role name already exists in this company.": "該公司已存在相同名稱的角色。", "Role not found.": "角色不存在。", "Role updated successfully.": "角色已成功更新。", - "Points Rule": "點數規則", - "Points Settings": "點數設定", - "Points toggle": "點數開關", "Roles": "角色權限", "Roles scoped to specific customer companies.": "適用於各個客戶公司的特定角色。", "Running Status": "運行狀態", - "s": "秒", "SYSTEM": "系統層級", + "Sale Price": "售價", "Sales": "銷售管理", "Sales Activity": "銷售活動", "Sales Management": "銷售管理", @@ -504,16 +586,20 @@ "Saved.": "已儲存", "Saving...": "儲存中...", "Scale level and access control": "層級與存取控制", + "Scan this code to quickly access the maintenance form for this device.": "掃描此 QR Code 即可快速進入此設備的維修單填寫頁面。", + "Search accounts...": "搜尋帳號...", "Search configurations...": "搜尋設定...", "Search customers...": "搜尋客戶...", "Search machines by name or serial...": "搜尋機台名稱或序號...", - "Search machines...": "搜尋機台...", + "Search machines...": "搜尋機台名稱或序號...", "Search models...": "搜尋型號...", + "Search products...": "搜尋商品...", "Search roles...": "搜尋角色...", "Search serial no or name...": "搜尋序號或機台名稱...", "Search serial or machine...": "搜尋序號或機台名稱...", "Search users...": "搜尋用戶...", "Select All": "全選", + "Select Category": "選擇類別", "Select Company": "選擇公司名稱", "Select Machine": "選擇機台", "Select Machine to view metrics": "請選擇機台以查看指標", @@ -523,10 +609,13 @@ "Select date to sync data": "選擇日期以同步數據", "Selected": "已選擇", "Selected Date": "查詢日期", + "Selection": "已選擇", "Serial & Version": "序號與版本", "Serial No": "機台序號", "Serial Number": "機台序號", "Show": "顯示", + "Show material code field in products": "在商品資料中顯示物料編號欄位", + "Show points rules in products": "在商品資料中顯示點數規則相關欄位", "Showing": "顯示第", "Showing :from to :to of :total items": "顯示第 :from 到 :to 項,共 :total 項", "Sign in to your account": "隨時隨地掌控您的業務。", @@ -537,7 +626,13 @@ "Slot Test": "貨道測試", "Some fields need attention": "部分欄位需要注意", "Special Permission": "特殊權限", + "Specification": "規格", + "Specifications": "規格", + "Spring Channel Limit": "彈簧貨道上限", + "Spring Limit": "彈簧貨道上限", "Staff Stock": "人員庫存", + "Start Date": "起始日", + "Statistics": "數據統計", "Status": "狀態", "Status / Temp / Sub / Card / Scan": "狀態 / 溫度 / 下位機 / 刷卡機 / 掃碼機", "Stock Management": "庫存管理單", @@ -555,6 +650,8 @@ "Super Admin": "超級管理員", "Super-admin role cannot be assigned to tenant accounts.": "超級管理員角色無法指派給租戶帳號。", "Survey Analysis": "問卷分析", + "Syncing Permissions...": "正在同步權限...", + "System": "系統", "System Default": "系統預設", "System Level": "系統層級", "System Official": "系統層", @@ -565,10 +662,8 @@ "System super admin accounts cannot be deleted.": "系統超級管理員帳號無法刪除。", "System super admin accounts cannot be modified via this interface.": "系統超級管理員帳號無法透過此介面修改。", "Systems Initializing": "系統初始化中", - "System": "系統", "TapPay Integration": "TapPay 支付串接", "TapPay Integration Settings Description": "喬睿科技支付串接設定", - "Statistics": "數據統計", "Target": "目標", "Tax ID": "統一編號", "Tax ID (Optional)": "統一編號 (選填)", @@ -590,25 +685,31 @@ "Total Connected": "總計連線數", "Total Customers": "客戶總數", "Total Daily Sales": "本日累計銷量", + "Total Gross Value": "銷售總結", "Total Logins": "總登入次數", "Total Selected": "已選擇總數", "Total Slots": "總貨道數", "Total items": "總計 :count 項", + "Track Channel Limit": "履帶貨道上限", + "Track Limit": "履帶貨道上限", "Track device health and maintenance history": "追蹤設備健康與維修歷史", - "Total Gross Value": "銷售總結", + "Traditional Chinese": "繁體中文", "Transfer Audit": "調撥單", "Transfers": "調撥單", "Tutorial Page": "教學頁", "Type": "類型", "UI Elements": "UI元素", + "Uncategorized": "未分類", "Unified Operational Timeline": "整合式營運時序圖", + "Units": "台", "Unknown": "未知", "Update": "更新", + "Update Authorization": "更新授權", "Update Customer": "更新客戶", "Update Password": "更改密碼", + "Update Product": "更新商品", "Update existing role and permissions.": "更新現有角色與權限設定。", "Update your account's profile information and email address.": "更新您的帳號名稱、手機號碼與電子郵件地址。", - "Validation Error": "驗證錯誤", "Upload New Images": "上傳新照片", "Uploading new images will replace all existing images.": "上傳新照片將會取代所有現有照片。", "User": "一般用戶", @@ -616,20 +717,11 @@ "Username": "使用者帳號", "Users": "帳號數", "Utilization Rate": "機台稼動率", - "Utilized Time": "稼動持續時間", - "Units": "台", "Utilization Timeline": "稼動時序", "Utilization, OEE and Operational Intelligence": "稼動率、OEE 與營運情報", + "Utilized Time": "稼動持續時間", "Valid Until": "合約到期日", - "Buyout": "買斷", - "Lease": "租賃", - "Original Type": "原始類型", - "Original:": "原:", - "Business Type": "業務類型", - "Start Date": "起始日", - "End Date": "截止日", - "Original": "原始", - "Current": "當前", + "Validation Error": "驗證錯誤", "Vending Page": "販賣頁", "Venue Management": "場地管理", "View Details": "查看詳情", @@ -645,6 +737,7 @@ "Welcome Gift": "註冊成效禮", "Welcome Gift Status": "來店禮", "Work Content": "工作內容", + "Yes, regenerate": "確認重新產生", "Yesterday": "昨日", "You cannot assign permissions you do not possess.": "您無法指派您自身不具備的權限。", "You cannot delete your own account.": "您無法刪除自己的帳號。", @@ -662,6 +755,7 @@ "data-config": "資料設定", "data-config.sub-account-roles": "子帳號角色", "data-config.sub-accounts": "子帳號管理", + "e.g. 500ml / 300g": "例如:500ml / 300g", "e.g. John Doe": "例如:張曉明", "e.g. TWSTAR": "例如:TWSTAR", "e.g. Taiwan Star": "例如:台灣之星", @@ -682,6 +776,11 @@ "menu.basic.machines": "機台設定", "menu.basic.payment-configs": "客戶金流設定", "menu.data-config": "資料設定", + "menu.data-config.admin-products": "商品狀態", + "menu.data-config.advertisements": "廣告管理", + "menu.data-config.badges": "徽章設定", + "menu.data-config.points": "點數設定", + "menu.data-config.products": "商品管理", "menu.data-config.sub-account-roles": "子帳號角色", "menu.data-config.sub-accounts": "子帳號管理", "menu.line": "LINE 配置", @@ -700,6 +799,7 @@ "menu.sales": "銷售報表", "menu.special-permission": "特殊權限", "menu.warehouses": "倉儲管理", + "min": "分", "of": "總計", "permissions": "權限設定", "permissions.accounts": "帳號管理", @@ -708,6 +808,7 @@ "remote": "遠端管理", "reservation": "預約系統", "roles": "角色權限", + "s": "秒", "sales": "銷售管理", "special-permission": "特殊權限", "super-admin": "超級管理員", @@ -716,94 +817,9 @@ "vs Yesterday": "較昨日", "warehouses": "倉庫管理", "待填寫": "待填寫", - "Enabled": "已啟用", - "Account :name status has been changed to :status.": "帳號 :name 的狀態已變更為 :status。", - "Cannot change Super Admin status.": "無法變更超級管理員的狀態。", - "Confirm Status Change": "確認變更狀態", - "Disable Product Confirmation": "停用商品確認", - "Delete Product Confirmation": "刪除商品確認", - "Are you sure you want to change the status of this product? Disabled products will not be visible on the machine.": "確定要變更此商品的狀態嗎?停用的商品將不會在機台上顯示。", - "Are you sure you want to delete this product? All related historical translation data will also be removed.": "確定要刪除此商品嗎?所有相關的歷史翻譯數據也將被移除。", - "Are you sure you want to change the status? This may affect associated accounts.": "您確定要變更狀態嗎?這可能會影響相關帳號的權限效力。", - "Confirm Account Status Change": "帳號狀態變更確認", - "Are you sure you want to change the status? After disabling, this account will no longer be able to log in to the system.": "您確定要變更狀態嗎?停用之後,該帳號將會立即被登出且無法再登入系統。", - "Confirm Account Deactivation": "停用帳號確認", - "Are you sure you want to deactivate this account? After deactivating, this account will no longer be able to log in to the system.": "確定要停用此帳號嗎?停用後將無法登入系統。", - "Enable": "啟用", - "Disable": "停用", - "Regenerate": "重新產生", - "API Token Copied": "API 金鑰已複製", - "Yes, regenerate": "確認重新產生", - "Regenerating the token will disconnect the physical machine until it is updated. Continue?": "重新產生金鑰將導致實體機台暫時失去連線,必須於機台端更新此新金鑰才能恢復。確定繼續嗎?", - "Error processing request": "處理請求時發生錯誤", - "API Token regenerated successfully.": "API 金鑰重新產生成功。", - "Product Name (Multilingual)": "商品名稱 (多語系)", - "Material Code": "物料代碼", - "Full Points": "全點數", - "Half Points": "半點數", - "Half Points Amount": "半點數金額", - "Name in Traditional Chinese": "繁體中文名稱", - "Name in English": "英文名稱", - "Name in Japanese": "日文名稱", - "Track Limit": "履帶貨道上限", - "Spring Limit": "彈簧貨道上限", - "Channel Limits Configuration": "貨道上限配置", - "Manage your catalog, prices, and multilingual details.": "管理您的商品型錄、價格及多語系詳情。", - "Product created successfully": "商品已成功建立", - "Product updated successfully": "商品已成功更新", - "Product deleted successfully": "商品已成功刪除", - "Fill in the product details below": "請在下方填寫商品的詳細資訊", - "Uncategorized": "未分類", - "Track Channel Limit": "履帶貨道上限", - "Spring Channel Limit": "彈簧貨道上限", - "Product Details": "商品詳情", - "Production Company": "生產公司", - "Barcode": "條碼", - "Specifications": "規格", - "Cost": "成本", - "Member Price": "會員價", - "Retail Price": "零售價", - "Sale Price": "售價", - "Update Product": "更新商品", - "Edit Product": "編輯商品", - "Create Product": "建立商品", - "Are you sure you want to delete this product?": "您確定要刪除此商品嗎?", - "Channel Limits (Track/Spring)": "貨道上限 (履帶/彈簧)", - "Member": "會員價", - "Search products...": "搜尋商品...", - "Product Info": "商品資訊", - "Price / Member": "售價 / 會員價", - "Add Product": "新增商品", - "Delete Product": "刪除商品", - "Specification": "規格", - "e.g. 500ml / 300g": "例如:500ml / 300g", - "Active Status": "啟用狀態", - "Traditional Chinese": "繁體中文", - "English": "英文", - "Japanese": "日文", - "Select Category": "選擇類別", - "Feature Settings": "功能設定", - "Enable Material Code": "啟用物料編號", - "Show material code field in products": "在商品資料中顯示物料編號欄位", - "Enable Points": "啟用點數規則", - "Show points rules in products": "在商品資料中顯示點數規則相關欄位", - "Customer Details": "客戶詳情", - "Current Status": "當前狀態", - "Product Image": "商品圖片", - "PNG, JPG up to 2MB": "支援 PNG, JPG (最大 2MB)", - "menu.data-config.products": "商品管理", - "menu.data-config.advertisements": "廣告管理", - "menu.data-config.admin-products": "商品狀態", - "menu.data-config.points": "點數設定", - "menu.data-config.badges": "徽章設定", - "Create New Role": "建立新角色", - "Create Sub Account Role": "建立子帳號角色", - "Edit Sub Account Role": "編輯子帳號角色", - "New Role": "新角色", - "Manufacturer": "製造商", - "Product status updated to :status": "商品狀態已更新為 :status", - "Customer and associated accounts disabled successfully.": "客戶及其關聯帳號已成功停用。", - "Customer enabled successfully.": "客戶已成功啟用。", - "Cannot delete company with active accounts.": "無法刪除仍有客用帳號的客戶。", - "Customer deleted successfully.": "客戶已成功刪除。" -} + "Authorized Accounts Tab": "授權帳號", + "Authorize Btn": "授權", + "Authorization updated successfully": "授權更新成功", + "Authorized Status": "已授權", + "Unauthorized Status": "未授權" +} \ No newline at end of file diff --git a/resources/views/admin/basic-settings/machines/index.blade.php b/resources/views/admin/basic-settings/machines/index.blade.php index a9bf8ce..1cd30e1 100644 --- a/resources/views/admin/basic-settings/machines/index.blade.php +++ b/resources/views/admin/basic-settings/machines/index.blade.php @@ -19,6 +19,7 @@ showMaintenanceQrModal: false, maintenanceQrMachineName: '', maintenanceQrUrl: '', + permissionSearchQuery: '', openMaintenanceQr(machine) { this.maintenanceQrMachineName = machine.name; const baseUrl = '{{ route('admin.maintenance.create', ['serial_no' => 'SERIAL_NO']) }}'; @@ -112,6 +113,71 @@ this.loadingRegenerate = false; window.dispatchEvent(new CustomEvent('toast', { detail: { message: '{{ __('Error processing request') }}', type: 'error' } })); }); + }, + // Machine Permissions (Migrated from Account Management) + showPermissionModal: false, + isPermissionsLoading: false, + targetUserId: null, + targetUserName: '', + allMachines: [], + allMachinesCount: 0, + permissions: {}, + openPermissionModal(user) { + this.targetUserId = user.id; + this.targetUserName = user.name; + this.showPermissionModal = true; + this.isPermissionsLoading = true; + this.permissions = {}; + this.allMachines = []; + this.permissionSearchQuery = ''; + + fetch(`/admin/basic-settings/machines/permissions/accounts/${user.id}`) + .then(res => res.json()) + .then(data => { + if (data.machines) { + this.allMachines = data.machines; + this.allMachinesCount = data.machines.length; + const tempPermissions = {}; + data.machines.forEach(m => { + tempPermissions[m.id] = (data.assigned_ids || []).includes(m.id); + }); + this.permissions = tempPermissions; + } + }) + .catch(e => { + window.dispatchEvent(new CustomEvent('toast', { detail: { message: '{{ __('Failed to load permissions') }}', type: 'error' } })); + }) + .finally(() => { + this.isPermissionsLoading = false; + }); + }, + togglePermission(machineId) { + this.permissions = { ...this.permissions, [machineId]: !this.permissions[machineId] }; + }, + savePermissions() { + const machineIds = Object.keys(this.permissions).filter(id => this.permissions[id]); + + fetch(`/admin/basic-settings/machines/permissions/accounts/${this.targetUserId}`, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRF-TOKEN': document.querySelector('meta[name=\'csrf-token\']').content, + 'Accept': 'application/json' + }, + body: JSON.stringify({ machine_ids: machineIds }) + }) + .then(res => res.json()) + .then(data => { + if (data.success) { + window.dispatchEvent(new CustomEvent('toast', { detail: { message: data.message, type: 'success' } })); + setTimeout(() => window.location.reload(), 500); + } else { + throw new Error(data.error || 'Update failed'); + } + }) + .catch(e => { + window.dispatchEvent(new CustomEvent('toast', { detail: { message: e.message, type: 'error' } })); + }); } }" @execute-regenerate.window="executeRegeneration($event.detail)"> @@ -150,6 +216,10 @@ class="px-8 py-3 rounded-xl text-sm font-black uppercase tracking-widest transition-all {{ $tab === 'models' ? 'bg-white dark:bg-slate-800 text-cyan-600 dark:text-cyan-400 shadow-sm shadow-cyan-500/10' : 'text-slate-400 hover:text-slate-600 dark:hover:text-slate-200' }}"> {{ __('Models') }} + + {{ __('Authorized Accounts Tab') }} + @@ -167,7 +237,7 @@ @@ -318,6 +388,82 @@ {{ $machines->appends(['tab' => 'machines'])->links('vendor.pagination.luxury') }} + @elseif($tab === 'accounts') + +
| + {{ __('Account Info') }} | ++ {{ __('Affiliation') }} | ++ {{ __('Authorized Machines') }} | ++ {{ __('Action') }} | +
|---|---|---|---|
|
+
+
+
+
+
+
+ {{ $user->name }}
+ {{ $user->username }}
+
+ |
+ + + {{ $user->company->name ?? __('System') }} + + | +
+
+ @forelse($user->machines as $m)
+
+
+ {{ $m->name }}
+ {{ $m->serial_no }}
+
+ @empty
+
+ -- {{ __('None') }} --
+
+ @endforelse
+ |
+ + + | +
|
+
+
+
+ {{ __('No accounts found') }} + |
+ |||
+ {{ __('Selection') }}: / {{ __('Devices') }} +
+