diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 13c100f3a9..1f270287c0 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -532,6 +532,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionInts { 0 }); def = this->add("chamber_temperature", coInts); + // TRN: Label of a configuration parameter: Nominal chamber temperature. def->label = L("Nominal"); def->full_label = L("Chamber temperature"); def->tooltip = L("Required chamber temperature for the print.\nWhen set to zero, " @@ -543,6 +544,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionInts{ 0 }); def = this->add("chamber_minimal_temperature", coInts); + // TRN: Label of a configuration parameter: Minimal chamber temperature def->label = L("Minimal"); def->full_label = L("Chamber minimal temperature"); def->tooltip = L("Minimal chamber temperature that the printer waits for before the print starts. This allows " @@ -635,12 +637,12 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(1)); def = this->add("top_one_perimeter_type", coEnum); - def->label = L("Only one perimeter type"); + def->label = L("Single perimeter on top surfaces"); def->category = L("Layers and Perimeters"); - def->tooltip = L("Use only one perimeter on flat top surface, to give more space to the top infill pattern. Could be applied on topmost surface or all top surface."); + def->tooltip = L("Use only one perimeter on flat top surface, to give more space to the top infill pattern. Could be applied on topmost surface or all top surfaces."); def->mode = comExpert; def->set_enum({ - { "none", L("None surfaces") }, + { "none", L("Disabled") }, { "top", L("All top surfaces") }, { "topmost", L("Topmost surface only") } }); @@ -649,7 +651,7 @@ void PrintConfigDef::init_fff_params() def = this->add("only_one_perimeter_first_layer", coBool); def->label = L("Only one perimeter on first layer"); def->category = L("Layers and Perimeters"); - def->tooltip = L("Use only one perimeter on the first layer of model."); + def->tooltip = L("Use only one perimeter on the first layer."); def->mode = comExpert; def->set_default_value(new ConfigOptionBool(false)); @@ -1138,10 +1140,10 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloats { 0. }); def = this->add("filament_infill_max_speed", coFloats); - def->label = L("Max simple infill speed"); - def->tooltip = L("Maximum speed allowed for this filament while printing simple infill. " - "The term \"simple infill\" means infill without any self intersections in a single layer. " - "Set to zero for no limit."); + def->label = L("Max non-crossing infill speed"); + def->tooltip = L("Maximum speed allowed for this filament while printing infill without " + "any self intersections in a single layer. " + "Set to zero for no limit."); def->sidetext = L("mm/s"); def->min = 0; def->mode = comAdvanced; @@ -1149,9 +1151,9 @@ void PrintConfigDef::init_fff_params() def = this->add("filament_infill_max_crossing_speed", coFloats); def->label = L("Max crossing infill speed"); - def->tooltip = L("Maximum speed allowed for this filament while printing crossing infill. " - "The term \"crossing infill\" means infill with self intersections in a single layer. " - "Set to zero for no limit."); + def->tooltip = L("Maximum speed allowed for this filament while printing infill with " + "self intersections in a single layer. " + "Set to zero for no limit."); def->sidetext = L("mm/s"); def->min = 0; def->mode = comAdvanced; @@ -1388,10 +1390,10 @@ void PrintConfigDef::init_fff_params() def->cli = ConfigOptionDef::nocli; def = this->add("filament_shrinkage_compensation_xy", coPercents); - def->label = L("Shrinkage XY"); + def->label = L("Shrinkage compensation XY"); def->tooltip = L("Enter your filament shrinkage percentages for the X and Y axes here to apply scaling of the object to " "compensate for shrinkage in the X and Y axes. For example, if you measured 99mm instead of 100mm, " - "then you should put here 1%."); + "enter 1%."); def->sidetext = L("%"); def->mode = comAdvanced; def->min = -10.; @@ -1399,10 +1401,10 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionPercents { 0 }); def = this->add("filament_shrinkage_compensation_z", coPercents); - def->label = L("Shrinkage Z"); + def->label = L("Shrinkage compensation Z"); def->tooltip = L("Enter your filament shrinkage percentages for the Z axis here to apply scaling of the object to " "compensate for shrinkage in the Z axis. For example, if you measured 99mm instead of 100mm, " - "then you should put here 1%."); + "enter 1%."); def->sidetext = L("%"); def->mode = comAdvanced; def->min = -10.; @@ -5453,8 +5455,8 @@ CLIActionsConfigDef::CLIActionsConfigDef() def->set_default_value(new ConfigOptionBool(false)); def = this->add("opengl-aa", coBool); - def->label = L("Automatic OpenGL antialising samples number selection"); - def->tooltip = L("Automatically select the highest number of samples for OpenGL antialising."); + def->label = L("Automatic OpenGL antialiasing samples number selection"); + def->tooltip = L("Automatically select the highest number of samples for OpenGL antialiasing."); def->cli = "opengl-aa"; def->set_default_value(new ConfigOptionBool(false)); diff --git a/src/slic3r/GUI/ConfigWizard.cpp b/src/slic3r/GUI/ConfigWizard.cpp index d3094f79bd..fcb5921141 100644 --- a/src/slic3r/GUI/ConfigWizard.cpp +++ b/src/slic3r/GUI/ConfigWizard.cpp @@ -1888,7 +1888,7 @@ wxString repo_title(const std::string& repo_id, const std::string& repo_name) { if (repo_name.empty()) { - return repo_id.empty() ? _L("Other Vendors") : format_wxstr(_L("%1% Vendors"), repo_id); + return repo_id.empty() ? wxString::FromUTF8("Unknown repo") : format_wxstr("Unnamed repo (ID %1%)", repo_id); } return repo_name; } @@ -1947,12 +1947,12 @@ PageVendors::PageVendors(ConfigWizard* parent, std::string repo_id /*= wxEmptySt } if (!user_presets_list.IsEmpty()) { - wxString message = format_wxstr(_L_PLURAL("Following user preset has a same name as one of added system presets from '%1%' vendor:\n" - "%2%Please note that this user preset will be rewrite by system preset.\n\n" - "Do you still wish to add presets from '%1%'?", - "Following user presets have same names as some of added system presets from '%1%' vendor:\n" - "%2%Please note that these user presets will be rewrite by system presets.\n\n" - "Do you still wish to add presets from '%1%'?", + wxString message = format_wxstr(_L_PLURAL("Existing user preset '%2%' has the same name as one of new system presets from vendor '%1%'.\n" + "Please note that this user preset will be rewritten by the system preset.\n\n" + "Do you still wish to add presets from vendor '%1%'?", + "Existing user presets (%2%) have the same names as some of new system presets from vendor '%1%'.\n" + "Please note that these user presets will be rewritten by the system presets.\n\n" + "Do you still wish to add presets from vendor '%1%'?", user_presets_cnt), vendor->name, user_presets_list); MessageDialog msg(this->GetParent(), message, _L("Notice"), wxYES_NO); @@ -3775,9 +3775,10 @@ bool ConfigWizard::priv::can_clear_printer_pages() if (msg.IsEmpty()) return true; - wxString message = format_wxstr( _L("Next pages will be deleted after configuration update:%1%\n" - "Installed presets will be uninstalled.\n" - "Would you like to process it?"), "\n\n"+ msg); + // TRN: %1% contains list of pages to be removed, each on its own line and ending with a line break. + wxString message = format_wxstr( _L("Following Configuration Wizard pages will be removed after the configuration update:\n\n%1%\n" + "Installed presets for the respective printers will also be removed.\n" + "Do you want to continue?"), msg); MessageDialog msg_dlg(this->q, message, _L("Notice"), wxYES_NO); return msg_dlg.ShowModal() == wxID_YES; diff --git a/src/slic3r/GUI/DoubleSliderForLayers.cpp b/src/slic3r/GUI/DoubleSliderForLayers.cpp index 15fa59b462..a2c5f7917b 100644 --- a/src/slic3r/GUI/DoubleSliderForLayers.cpp +++ b/src/slic3r/GUI/DoubleSliderForLayers.cpp @@ -504,7 +504,7 @@ bool DSForLayers::render_multi_extruders_menu(bool switch_current_code/* = false void DSForLayers::render_color_picker() { ImGuiContext& context = *GImGui; - const std::string title = _u8L("Select color for color change"); + const std::string title = _u8L("Select color for Color Change"); if (m_show_color_picker) { ImGuiPureWrap::set_next_window_pos(1200, 200, ImGuiCond_Always, 0.5f, 0.0f); @@ -532,7 +532,7 @@ void DSForLayers::render_cog_menu() if (ImGuiPureWrap::menu_item_with_icon(_u8L("Jump to height").c_str(), "Shift+G")) { jump_to_value(); } - if (ImGuiPureWrap::menu_item_with_icon(_u8L("Show estimated print time on mouse moving").c_str(), "", icon_sz, 0, m_show_estimated_times)) { + if (ImGuiPureWrap::menu_item_with_icon(_u8L("Show estimated print time on hover").c_str(), "", icon_sz, 0, m_show_estimated_times)) { m_show_estimated_times = !m_show_estimated_times; } if (m_mode == MultiAsSingle && m_draw_mode == dmRegular && diff --git a/src/slic3r/GUI/GCodeViewer.cpp b/src/slic3r/GUI/GCodeViewer.cpp index ffc8bb063e..c80105eda6 100644 --- a/src/slic3r/GUI/GCodeViewer.cpp +++ b/src/slic3r/GUI/GCodeViewer.cpp @@ -256,6 +256,7 @@ static std::string to_string(libvgcode::EMoveType type) { switch (type) { + // TRN: Following strings are labels in the G-code Viewer legend. case libvgcode::EMoveType::Noop: { return _u8L("Noop"); } case libvgcode::EMoveType::Retract: { return _u8L("Retract"); } case libvgcode::EMoveType::Unretract: { return _u8L("Unretract"); } @@ -275,6 +276,7 @@ static std::string to_string(libvgcode::EGCodeExtrusionRole role) { switch (role) { + // TRN: Following strings are labels in the G-code Viewer legend. case libvgcode::EGCodeExtrusionRole::None: { return _u8L("Unknown"); } case libvgcode::EGCodeExtrusionRole::Perimeter: { return _u8L("Perimeter"); } case libvgcode::EGCodeExtrusionRole::ExternalPerimeter: { return _u8L("External perimeter"); } @@ -326,6 +328,7 @@ void GCodeViewer::SequentialView::Marker::render_position_window(const libvgcode ImGuiPureWrap::text(std::string(buf)); ImGui::SameLine(); + // TRN: Show/hide properties is a tooltip on a button which toggles an extra window in the G-code Viewer, showing properties of current G-code segment. if (imgui.image_button(properties_shown ? ImGui::HorizontalHide : ImGui::HorizontalShow, properties_shown ? _u8L("Hide properties") : _u8L("Show properties"))) { properties_shown = !properties_shown; imgui.requires_extra_frame(); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 10fd4c1b7b..c78dcd5220 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -3268,6 +3268,7 @@ bool GUI_App::run_wizard(ConfigWizard::RunReason reason, ConfigWizard::StartPage // ConfigWizard can take some time to start. Because it is a wxWidgets window, it has to be done // in UI thread, so displaying a nice modal dialog and letting the CW start in a worker thread // is not an option. Let's at least show a modeless dialog before the UI thread freezes. + // TRN: Text showing while the ConfigWizard is loading, so the user knows something is happening. auto cw_loading_dlg = new ConfigWizardLoadingDialog(mainframe, _L("Loading Configuration Wizard...")); cw_loading_dlg->CenterOnParent(); cw_loading_dlg->Show(); @@ -3516,10 +3517,13 @@ bool GUI_App::check_updates(const bool invoked_by_user) // for preset_updater sync we need to sync archive database first plater()->get_preset_archive_database()->sync_blocking(); // Now re-extract offline repos - std::string extract_msg; - if (!plater()->get_preset_archive_database()->extract_archives_with_check(extract_msg)) { - extract_msg = GUI::format("%1%\n\n%2%", _L("Following repositories won't be updated:"), extract_msg); - show_error(nullptr, extract_msg); + std::string failed_paths; + if (!plater()->get_preset_archive_database()->extract_archives_with_check(failed_paths)) { + int cnt = std::count(failed_paths.begin(), failed_paths.end(), '\n') + 1; + // TRN: %1% contains paths from which loading failed. They are separated by \n, there is no \n at the end. + failed_paths = GUI::format(_L_PLURAL("It was not possible to extract data from %1%. The repository will not be updated.", + "It was not possible to extract data for following local repositories. They will not be updated.\n\n %1%", cnt), failed_paths); + show_error(nullptr, failed_paths); } // then its time for preset_updater sync preset_updater->sync_blocking(preset_bundle, this, plater()->get_preset_archive_database()->get_selected_archive_repositories()); @@ -3592,7 +3596,7 @@ bool GUI_App::open_login_browser_with_dialog(const wxString& url, wxWindow* pare { bool auth_login_dialog_confirmed = app_config->get_bool("auth_login_dialog_confirmed"); if (!auth_login_dialog_confirmed) { - RichMessageDialog dialog(parent, _L("Open default browser with Prusa Account Log in page?\n(On Yes, You will not be asked again.)"), _L("PrusaSlicer: Open Log in page"), wxICON_QUESTION | wxYES_NO); + RichMessageDialog dialog(parent, _L("Open default browser with Prusa Account Log in page?\n(If you select 'Yes', you will not be asked again.)"), _L("PrusaSlicer: Open Log in page"), wxICON_QUESTION | wxYES_NO); if (dialog.ShowModal() != wxID_YES) return false; app_config->set("auth_login_dialog_confirmed", "1"); @@ -3852,8 +3856,8 @@ bool GUI_App::select_printer_from_connect(const std::string& msg) bool is_installed = printer_preset && select_printer_preset(printer_preset); // notification std::string out = printer_preset ? - (is_installed ? GUI::format(_L("Installed and Selected Printer:\n%1%"), printer_preset->name) : - GUI::format(_L("Selected Printer:\n%1%"), printer_preset->name)) : + (is_installed ? GUI::format(_L("Installed and selected printer:\n%1%"), printer_preset->name) : + GUI::format(_L("Selected printer:\n%1%"), printer_preset->name)) : GUI::format(_L("Printer not found:\n%1%"), model_name); this->plater()->get_notification_manager()->close_notification_of_type(NotificationType::SelectPrinterFromConnect); this->plater()->get_notification_manager()->push_notification( @@ -3898,7 +3902,7 @@ void GUI_App::search_and_select_filaments(const std::string& material, size_t ex { out_message += /*(extruder_count == 1) ? GUI::format(_L("Selected Filament:\n%1%"), filament_preset.preset->name) - : */GUI::format(_L("Extruder %1%: Selected Filament %2%\n"), extruder_index + 1, filament.preset->name); + : */GUI::format(_L("Extruder %1%: Selected filament %2%\n"), extruder_index + 1, filament.preset->name); return; } } @@ -3930,11 +3934,11 @@ void GUI_App::search_and_select_filaments(const std::string& material, size_t ex && filament.preset->name.compare(0, 9, "Prusament") == 0 && select_filament_preset(filament.preset, extruder_index)) { - out_message += GUI::format(_L("Extruder %1%: Selected and Installed Filament %2%\n"), extruder_index + 1, filament.preset->name); + out_message += GUI::format(_L("Extruder %1%: Selected and installed filament %2%\n"), extruder_index + 1, filament.preset->name); return; } } - out_message += GUI::format(_L("Extruder %2%: Failed to Find and Select Filament type: %1%\n"), material, extruder_index + 1); + out_message += GUI::format(_L("Extruder %2%: Failed to find and select filament type: %1%\n"), material, extruder_index + 1); } void GUI_App::select_filament_from_connect(const std::string& msg) diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index ef498f0b6d..e18bb158e1 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -1867,9 +1867,8 @@ void MainFrame::export_configbundle(bool export_physical_printers /*= false*/) #if wxUSE_SECRETSTORE // First password prompts user with dialog if (!passwords_dialog_shown) { - //wxString msg = GUI::format_wxstr(L"%1%\n%2%", _L("Some of the exported printers contains passwords, which are stored in the system password store."), _L("Do you wish to include the passwords to the exported file in the plain text form?")); - wxString msg = _L("Some of the exported printers contains passwords, which are stored in the system password store." - " Do you wish to include the passwords in the plain text form to the exported file?"); + wxString msg = _L("Some of the exported printers contain passwords, which are stored in the system password store." + " Do you want to include the passwords in the plain text form in the exported file?"); MessageDialog dlg_psswd(this, msg, wxMessageBoxCaptionStr, wxYES_NO | wxYES_DEFAULT | wxICON_QUESTION); if (dlg_psswd.ShowModal() == wxID_YES) passwords_to_plain = true; @@ -1891,7 +1890,7 @@ void MainFrame::export_configbundle(bool export_physical_printers /*= false*/) wxString username; wxSecretValue password; if (!store.Load(service, username, password)) { - std::string msg = GUI::format(_u8L("Failed to load credentials from the system secret store for the printer %1%."), printer_id); + std::string msg = GUI::format(_u8L("Failed to load credentials from the system secret store for printer %1%."), printer_id); BOOST_LOG_TRIVIAL(error) << msg; show_error(nullptr, msg); return false; diff --git a/src/slic3r/GUI/NotificationManager.hpp b/src/slic3r/GUI/NotificationManager.hpp index f3a2aa08fe..acc6f43f9b 100644 --- a/src/slic3r/GUI/NotificationManager.hpp +++ b/src/slic3r/GUI/NotificationManager.hpp @@ -917,7 +917,8 @@ private: {NotificationType::URLNotRegistered , NotificationLevel::RegularNotificationLevel , 10 - , _u8L("PrusaSlicer recieved a download request from Printables.com, but it's not allowed. You can allow it") + // TRN: The text is followed by a hyperlink saying "here." It is necessary to split it in two phrases, sorry. + , _u8L("PrusaSlicer received a download request from Printables.com, but it's not allowed. You can allow it") , _u8L("here.") , [](wxEvtHandler* evnthndlr) { wxGetApp().open_preferences("downloader_url_registered", "Other"); diff --git a/src/slic3r/GUI/OpenGLManager.cpp b/src/slic3r/GUI/OpenGLManager.cpp index b9b6a5bd42..ca73715339 100644 --- a/src/slic3r/GUI/OpenGLManager.cpp +++ b/src/slic3r/GUI/OpenGLManager.cpp @@ -381,10 +381,10 @@ bool OpenGLManager::init_gl() wxString message = format_wxstr( #if SLIC3R_OPENGL_ES _L("PrusaSlicer requires OpenGL ES 3.0 capable graphics driver to run correctly, \n" - "while OpenGL version %s, render %s, vendor %s was detected."), s_gl_info.get_version_string(), s_gl_info.get_renderer(), s_gl_info.get_vendor()); + "while OpenGL version %s, renderer %s, vendor %s was detected."), s_gl_info.get_version_string(), s_gl_info.get_renderer(), s_gl_info.get_vendor()); #else _L("PrusaSlicer requires OpenGL 3.2 capable graphics driver to run correctly,\n" - "while OpenGL version %s, render %s, vendor %s was detected."), s_gl_info.get_version_string(), s_gl_info.get_renderer(), s_gl_info.get_vendor()); + "while OpenGL version %s, renderer %s, vendor %s was detected."), s_gl_info.get_version_string(), s_gl_info.get_renderer(), s_gl_info.get_vendor()); #endif // SLIC3R_OPENGL_ES message += "\n"; message += _L("You may need to update your graphics card driver."); diff --git a/src/slic3r/GUI/PhysicalPrinterDialog.cpp b/src/slic3r/GUI/PhysicalPrinterDialog.cpp index 8d599efd8c..9730f14290 100644 --- a/src/slic3r/GUI/PhysicalPrinterDialog.cpp +++ b/src/slic3r/GUI/PhysicalPrinterDialog.cpp @@ -889,7 +889,7 @@ void PhysicalPrinterDialog::OnOK(wxEvent& event) const auto opt = m_config->option>("host_type"); if (opt->value == htPrusaConnect) { if (printhost_win && printhost_win->GetValue() != L"https://connect.prusa3d.com"){ - InfoDialog msg(this, _L("Warning"), _L("URL of PrusaConnect is different from https://connect.prusa3d.com. Do you want to continue?"), true, wxYES_NO); + InfoDialog msg(this, _L("Warning"), _L("URL of Prusa Connect is different from https://connect.prusa3d.com. Do you want to continue?"), true, wxYES_NO); if(msg.ShowModal() != wxID_YES){ printhost_win->SetValue(L"https://connect.prusa3d.com"); return; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index 3e18c4c559..b7870b3896 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -991,7 +991,7 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame) this->q->Bind(EVT_UA_PRUSACONNECT_PRINTER_DATA_FAIL, [this](UserAccountFailEvent& evt) { BOOST_LOG_TRIVIAL(error) << "Failed communication with Prusa Account: " << evt.data; user_account->on_communication_fail(); - std::string msg = _u8L("Failed to select printer from PrusaConnect."); + std::string msg = _u8L("Failed to select printer from Prusa Connect."); this->notification_manager->close_notification_of_type(NotificationType::SelectFilamentFromConnect); this->notification_manager->push_notification(NotificationType::SelectFilamentFromConnect, NotificationManager::NotificationLevel::WarningNotificationLevel, msg); }); @@ -1461,8 +1461,7 @@ std::vector Plater::priv::load_files(const std::vector& input_ if (!found) { // return to original print profile wxGetApp().get_tab(Preset::Type::TYPE_SLA_PRINT)->select_preset(edited_print_name, false); - std::string notif_text = into_u8(_L("Material preset was not loaded:")); - notif_text += "\n - " + preset_name; + std::string notif_text = GUI::format(_L("Material preset was not loaded:\n - %1%"), preset_name); q->get_notification_manager()->push_notification(NotificationType::CustomNotification, NotificationManager::NotificationLevel::PrintInfoNotificationLevel, notif_text); break; @@ -5987,7 +5986,7 @@ void Plater::connect_gcode() } } if (dialog_msg.empty()) { - show_error(this, _L("Failed to select a printer. PrusaConnect did not return a value.")); + show_error(this, _L("Failed to select a printer.")); return; } BOOST_LOG_TRIVIAL(debug) << "Message from Printer pick webview: " << dialog_msg; @@ -6008,7 +6007,7 @@ void Plater::connect_gcode() std::string data_subtree = p->user_account->get_print_data_from_json(dialog_msg, "data"); if (filename.empty() || team_id.empty() || data_subtree.empty()) { - std::string msg = _u8L("Failed to read response from Connect server. Upload is canceled."); + std::string msg = _u8L("Failed to read response from Prusa Connect server. Upload is cancelled."); BOOST_LOG_TRIVIAL(error) << msg; BOOST_LOG_TRIVIAL(error) << "Response: " << dialog_msg; show_error(this, msg); diff --git a/src/slic3r/GUI/PresetArchiveDatabase.cpp b/src/slic3r/GUI/PresetArchiveDatabase.cpp index a16b7e07e8..2a825cdc5e 100644 --- a/src/slic3r/GUI/PresetArchiveDatabase.cpp +++ b/src/slic3r/GUI/PresetArchiveDatabase.cpp @@ -353,7 +353,7 @@ bool PresetArchiveDatabase::set_selected_repositories(const std::vectoris_extracted()) { // non existent local repo since start selected msg = GUI::format( - _L("Cannot select offline repository from path: %1%. It was not extracted."), + _L("Cannot select local repository from path: %1%. It was not extracted."), archive->get_manifest().source_path ); return false; @@ -380,12 +380,12 @@ bool PresetArchiveDatabase::set_selected_repositories(const std::vector& pair : m_selected_repositories_uuid) { if (!pair.second) { continue; } - std::string uuid = pair.first; - auto compare_repo = [uuid](const std::unique_ptr &repo) { + const std::string uuid = pair.first; + auto compare_repo = [&uuid](const std::unique_ptr &repo) { return repo->get_uuid() == uuid; }; @@ -393,10 +393,7 @@ bool PresetArchiveDatabase::extract_archives_with_check(std::string &msg) assert(archives_it != m_archive_repositories.end()); if (!archives_it->get()->is_extracted()) { // non existent local repo since start selected - msg += GUI::format( - _L("Offline repository from path: %1% was not extracted.\n"), - archives_it->get()->get_manifest().source_path - ); + msg += std::string(msg.empty() ? "" : "\n") + archives_it->get()->get_manifest().source_path.string(); } } return msg.empty(); diff --git a/src/slic3r/GUI/PresetComboBoxes.cpp b/src/slic3r/GUI/PresetComboBoxes.cpp index 5fcbcdab21..6b3aea7f6d 100644 --- a/src/slic3r/GUI/PresetComboBoxes.cpp +++ b/src/slic3r/GUI/PresetComboBoxes.cpp @@ -740,14 +740,17 @@ PlaterPresetComboBox::PlaterPresetComboBox(wxWindow *parent, Preset::Type preset connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#5CD800")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1); connect_info_sizer->Add(connect_available_info, 0, wxALIGN_CENTER_VERTICAL); + // TRN: this is part of the infoline below Printer Settings dropdown, informing about number of printers available/offline/printing in Prusa Connect. connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("available")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10); connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#FB3636")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1); connect_info_sizer->Add(connect_offline_info, 0, wxALIGN_CENTER_VERTICAL); + // TRN: this is part of the infoline below Printer Settings dropdown, informing about number of printers available/offline/printing in Prusa Connect. connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("offline")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10); connect_info_sizer->Add(new wxStaticBitmap(parent, wxID_ANY, *get_bmp_bundle("connect_status", 14, 14, "#2E9BFF")), 0, wxALIGN_CENTER_VERTICAL | wxTOP, 1); connect_info_sizer->Add(connect_printing_info, 0, wxALIGN_CENTER_VERTICAL); + // TRN: this is part of the infoline below Printer Settings dropdown, informing about number of printers available/offline/printing in Prusa Connect. connect_info_sizer->Add(new wxStaticText(parent, wxID_ANY, _L("printing")), 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 10); #endif } diff --git a/src/slic3r/GUI/TopBar.cpp b/src/slic3r/GUI/TopBar.cpp index 8665cd1cbc..3fc0435999 100644 --- a/src/slic3r/GUI/TopBar.cpp +++ b/src/slic3r/GUI/TopBar.cpp @@ -471,7 +471,7 @@ TopBarItemsCtrl::TopBarItemsCtrl(wxWindow *parent, TopBarMenus* menus/* = nullpt wxBoxSizer* right_sizer = new wxBoxSizer(wxHORIZONTAL); - m_workspace_btn = new ButtonWithPopup(this, _L("Workspace"), "mode_simple"); + m_workspace_btn = new ButtonWithPopup(this, "Workspace", "mode_simple"); right_sizer->AddStretchSpacer(20); right_sizer->Add(m_workspace_btn, 0, wxALIGN_CENTER_VERTICAL | wxALIGN_RIGHT | wxALL, m_btn_margin); diff --git a/src/slic3r/GUI/UpdatesUIManager.cpp b/src/slic3r/GUI/UpdatesUIManager.cpp index 14e611f4f0..6a749f2c93 100644 --- a/src/slic3r/GUI/UpdatesUIManager.cpp +++ b/src/slic3r/GUI/UpdatesUIManager.cpp @@ -40,7 +40,7 @@ RepositoryUpdateUIManager::RepositoryUpdateUIManager(wxWindow* parent, PresetArc m_main_sizer->AddSpacer(em); - auto offline_label = new wxStaticText(m_parent, wxID_ANY, _L("Offline Repositories")); + auto offline_label = new wxStaticText(m_parent, wxID_ANY, _L("Local Repositories")); offline_label->SetFont(wxGetApp().bold_font()); m_main_sizer->Add(offline_label, 0, wxTOP | wxLEFT, 2 * em); @@ -97,7 +97,8 @@ void RepositoryUpdateUIManager::fill_grids() // header - for (const wxString& l : std::initializer_list{ _L("Use"), "", _L("Name"), _L("Descrition") }) { + // TRN: This string appears in Configuration Wizard in the 'Configuration Manager' step. + for (const wxString& l : std::initializer_list{ _L("Use"), "", _L("Name"), _L("Description") }) { auto text = new wxStaticText(m_parent, wxID_ANY, l); text->SetFont(wxGetApp().bold_font()); add(text); @@ -165,7 +166,7 @@ void RepositoryUpdateUIManager::fill_grids() { wxStaticBitmap* bmp = new wxStaticBitmap(m_parent, wxID_ANY, *get_bmp_bundle(entry.is_ok ? "tick_mark" : "exclamation")); - bmp->SetToolTip(entry.is_ok ? _L("Exists") : _L("Doesn't exist")); + bmp->SetToolTip(entry.is_ok ? _L("File exists") : _L("File does NOT exist")); add(bmp); } @@ -240,7 +241,7 @@ void RepositoryUpdateUIManager::remove_offline_repos(const std::string& id) void RepositoryUpdateUIManager::load_offline_repos() { wxArrayString input_files; - wxFileDialog dialog(m_parent, _L("Choose one or more ZIP-files") + ":", + wxFileDialog dialog(m_parent, _L("Choose one or more ZIP files") + ":", from_u8(wxGetApp().app_config->get_last_dir()), "", file_wildcards(FT_ZIP), wxFD_OPEN | /*wxFD_MULTIPLE | */wxFD_FILE_MUST_EXIST); diff --git a/src/slic3r/GUI/UserAccount.cpp b/src/slic3r/GUI/UserAccount.cpp index 8574ef9386..265c89cc3c 100644 --- a/src/slic3r/GUI/UserAccount.cpp +++ b/src/slic3r/GUI/UserAccount.cpp @@ -221,7 +221,7 @@ namespace { bool UserAccount::on_connect_printers_success(const std::string& data, AppConfig* app_config, bool& out_printers_changed) { - BOOST_LOG_TRIVIAL(debug) << "PrusaConnect printers message: " << data; + BOOST_LOG_TRIVIAL(debug) << "Prusa Connect printers message: " << data; pt::ptree ptree; try { std::stringstream ss(data); diff --git a/src/slic3r/GUI/WebViewDialog.cpp b/src/slic3r/GUI/WebViewDialog.cpp index fafbaaa1d1..a370beedb0 100644 --- a/src/slic3r/GUI/WebViewDialog.cpp +++ b/src/slic3r/GUI/WebViewDialog.cpp @@ -86,19 +86,19 @@ WebViewPanel::WebViewPanel(wxWindow *parent, const wxString& default_url, const #ifdef DEBUG_URL_PANEL // Create the Tools menu m_tools_menu = new wxMenu(); - wxMenuItem* viewSource = m_tools_menu->Append(wxID_ANY, _L("View Source")); - wxMenuItem* viewText = m_tools_menu->Append(wxID_ANY, _L("View Text")); + wxMenuItem* viewSource = m_tools_menu->Append(wxID_ANY, "View Source"); + wxMenuItem* viewText = m_tools_menu->Append(wxID_ANY, "View Text"); m_tools_menu->AppendSeparator(); wxMenu* script_menu = new wxMenu; m_script_custom = script_menu->Append(wxID_ANY, "Custom script"); - m_tools_menu->AppendSubMenu(script_menu, _L("Run Script")); - wxMenuItem* addUserScript = m_tools_menu->Append(wxID_ANY, _L("Add user script")); - wxMenuItem* setCustomUserAgent = m_tools_menu->Append(wxID_ANY, _L("Set custom user agent")); + m_tools_menu->AppendSubMenu(script_menu, "Run Script"); + wxMenuItem* addUserScript = m_tools_menu->Append(wxID_ANY, "Add user script"); + wxMenuItem* setCustomUserAgent = m_tools_menu->Append(wxID_ANY, "Set custom user agent"); - m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, _L("Enable Context Menu")); - m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, _L("Enable Dev Tools")); + m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, "Enable Context Menu"); + m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, "Enable Dev Tools"); #endif @@ -443,7 +443,7 @@ case type: \ BOOST_LOG_TRIVIAL(error) << "WebViewPanel error: " << category; load_error_page(); #ifdef DEBUG_URL_PANEL - m_info->ShowMessage(_L("An error occurred loading ") + evt.GetURL() + "\n" + + m_info->ShowMessage(wxString("An error occurred loading ") + evt.GetURL() + "\n" + "'" + category + "'", wxICON_ERROR); #endif } @@ -637,7 +637,7 @@ void ConnectWebViewPanel::on_user_token(UserAccountSuccessEvent& e) void ConnectWebViewPanel::on_script_message(wxWebViewEvent& evt) { - BOOST_LOG_TRIVIAL(debug) << "recieved message from PrusaConnect FE: " << evt.GetString(); + BOOST_LOG_TRIVIAL(debug) << "received message from Prusa Connect FE: " << evt.GetString(); handle_message(into_u8(evt.GetString())); } void ConnectWebViewPanel::on_navigation_request(wxWebViewEvent &evt) @@ -819,19 +819,19 @@ WebViewDialog::WebViewDialog(wxWindow* parent, const wxString& url, const wxStri #ifdef DEBUG_URL_PANEL // Create the Tools menu m_tools_menu = new wxMenu(); - wxMenuItem* viewSource = m_tools_menu->Append(wxID_ANY, _L("View Source")); - wxMenuItem* viewText = m_tools_menu->Append(wxID_ANY, _L("View Text")); + wxMenuItem* viewSource = m_tools_menu->Append(wxID_ANY, "View Source"); + wxMenuItem* viewText = m_tools_menu->Append(wxID_ANY, "View Text"); m_tools_menu->AppendSeparator(); wxMenu* script_menu = new wxMenu; m_script_custom = script_menu->Append(wxID_ANY, "Custom script"); - m_tools_menu->AppendSubMenu(script_menu, _L("Run Script")); - wxMenuItem* addUserScript = m_tools_menu->Append(wxID_ANY, _L("Add user script")); - wxMenuItem* setCustomUserAgent = m_tools_menu->Append(wxID_ANY, _L("Set custom user agent")); + m_tools_menu->AppendSubMenu(script_menu, "Run Script"); + wxMenuItem* addUserScript = m_tools_menu->Append(wxID_ANY, "Add user script"); + wxMenuItem* setCustomUserAgent = m_tools_menu->Append(wxID_ANY, "Set custom user agent"); - m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, _L("Enable Context Menu")); - m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, _L("Enable Dev Tools")); + m_context_menu = m_tools_menu->AppendCheckItem(wxID_ANY, "Enable Context Menu"); + m_dev_tools = m_tools_menu->AppendCheckItem(wxID_ANY, "Enable Dev Tools"); #endif diff --git a/src/slic3r/Utils/PrusaConnect.cpp b/src/slic3r/Utils/PrusaConnect.cpp index 63fd95f2f4..2f86e3cf18 100644 --- a/src/slic3r/Utils/PrusaConnect.cpp +++ b/src/slic3r/Utils/PrusaConnect.cpp @@ -136,7 +136,7 @@ bool PrusaConnectNew::upload(PrintHostUpload upload_data, ProgressFn progress_fn std::string init_out; if (!init_upload(upload_data, init_out)) { - error_fn(std::move(GUI::from_u8(init_out))); + error_fn(GUI::from_u8(init_out)); return false; } @@ -149,14 +149,14 @@ bool PrusaConnectNew::upload(PrintHostUpload upload_data, ProgressFn progress_fn pt::read_json(ss, ptree); const auto id_opt = ptree.get_optional("id"); if (!id_opt) { - error_fn(std::move(_L("Failed to extract upload id from server reply."))); + error_fn(wxString("Failed to extract upload id from server reply.")); return false; } upload_id = *id_opt; } catch (const std::exception&) { - error_fn(std::move(_L("Failed to extract upload id from server reply."))); + error_fn(wxString("Failed to extract upload id from server reply.")); return false; } const std::string name = get_name();