diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 9c995c1e94..bb89576033 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -15916,12 +15916,17 @@ wxString Plater::get_selected_printer_name_in_combox() { void Plater::pop_warning_and_go_to_device_page(wxString printer_name, PrinterWarningType type, const wxString &title) { printer_name.Replace("Bambu Lab", "", false); + + char first_char = std::toupper(printer_name[1]); + const std::unordered_set an_letters = {'A', 'E', 'F', 'H', 'I', 'L', 'M', 'N', 'O', 'R', 'S', 'X'}; + printer_name = (an_letters.count(first_char) > 0 ? "an " : "a ") + printer_name; + wxString content; if (type == PrinterWarningType::NOT_CONNECTED) { - content = wxString::Format(_L("Printer not connected. Please go to the device page to connect an %s printer before syncing."), printer_name); + content = wxString::Format(_L("Printer not connected. Please go to the device page to connect %s printer before syncing."), printer_name); } else if (type == PrinterWarningType::INCONSISTENT) { - content = wxString::Format(_L("The currently connected printer on the device page is not an %s. Please switch to an %s before syncing."), printer_name, printer_name); + content = wxString::Format(_L("The currently connected printer on the device page is not %s. Please switch to %s before syncing."), printer_name, printer_name); } else if (type == PrinterWarningType::UNINSTALL_FILAMENT) { content = _L("There are no filaments on the printer. Please load the filaments on the printer first."); } else if (type == PrinterWarningType::EMPTY_FILAMENT) {