'Không tìm thấy template hoặc tài nguyên trên vCenter. Vui lòng liên hệ hỗ trợ.', 'RESOURCE_INACCESSIBLE' => 'Tài nguyên vCenter không khả dụng. Vui lòng thử lại sau hoặc liên hệ hỗ trợ.', 'INVALID_ARGUMENT' => 'Thông tin cấu hình máy chủ không hợp lệ. Vui lòng liên hệ hỗ trợ.', 'UNABLE_TO_ALLOCATE_RESOURCE' => 'Không đủ tài nguyên để khởi tạo máy chủ. Vui lòng liên hệ hỗ trợ.', 'TIMED_OUT' => 'Yêu cầu khởi tạo máy chủ hết thời gian chờ. Vui lòng thử lại sau.', ]; public function detail(array $result): string { $data = $result['data'] ?? []; $messages = is_array($data) ? collect($data['messages'] ?? [])->pluck('default_message')->filter() : collect(); if ($messages->isNotEmpty()) { return ($data['error_type'] ?? 'vCenter') . ': ' . $messages->implode(' | '); } return is_string($data) ? $data : (string) json_encode($data, JSON_UNESCAPED_UNICODE); } public function translate(array $result, ?string $serverName = null): string { $data = $result['data'] ?? []; $errorType = is_array($data) ? ($data['error_type'] ?? '') : ''; if ($errorType === 'ALREADY_EXISTS') { return "Tên máy chủ \"{$serverName}\" đã tồn tại trong hệ thống. " . 'Vui lòng liên hệ hỗ trợ để được xử lý hoặc chọn tên máy chủ khác.'; } if ($errorType && isset(self::MESSAGES[$errorType])) { return self::MESSAGES[$errorType]; } // Avoid leaking raw JSON to customers return 'Không thể khởi tạo máy chủ ảo lúc này. Chúng tôi đã ghi nhận và sẽ xử lý trong thời gian sớm nhất. ' . 'Vui lòng liên hệ hỗ trợ nếu cần.'; } }