Improved wording of some UI texts and tooltips.

This commit is contained in:
bubnikv 2019-08-27 11:39:51 +02:00
parent a1f34adcf6
commit 1e11eab620
8 changed files with 38 additions and 34 deletions

View File

@ -368,7 +368,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("end_gcode", coString); def = this->add("end_gcode", coString);
def->label = L("End G-code"); def->label = L("End G-code");
def->tooltip = L("This end procedure is inserted at the end of the output file. " def->tooltip = L("This end procedure is inserted at the end of the output file. "
"Note that you can use placeholder variables for all Slic3r settings."); "Note that you can use placeholder variables for all PrusaSlicer settings.");
def->multiline = true; def->multiline = true;
def->full_width = true; def->full_width = true;
def->height = 12; def->height = 12;
@ -379,7 +379,7 @@ void PrintConfigDef::init_fff_params()
def->label = L("End G-code"); def->label = L("End G-code");
def->tooltip = L("This end procedure is inserted at the end of the output file, before the printer end gcode (and " def->tooltip = L("This end procedure is inserted at the end of the output file, before the printer end gcode (and "
"before any toolchange from this filament in case of multimaterial printers). " "before any toolchange from this filament in case of multimaterial printers). "
"Note that you can use placeholder variables for all Slic3r settings. " "Note that you can use placeholder variables for all PrusaSlicer settings. "
"If you have multiple extruders, the gcode is processed in extruder order."); "If you have multiple extruders, the gcode is processed in extruder order.");
def->multiline = true; def->multiline = true;
def->full_width = true; def->full_width = true;
@ -913,7 +913,7 @@ void PrintConfigDef::init_fff_params()
def->label = L("G-code flavor"); def->label = L("G-code flavor");
def->tooltip = L("Some G/M-code commands, including temperature control and others, are not universal. " def->tooltip = L("Some G/M-code commands, including temperature control and others, are not universal. "
"Set this option to your printer's firmware to get a compatible output. " "Set this option to your printer's firmware to get a compatible output. "
"The \"No extrusion\" flavor prevents Slic3r from exporting any extrusion value at all."); "The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all.");
def->enum_keys_map = &ConfigOptionEnum<GCodeFlavor>::get_enum_values(); def->enum_keys_map = &ConfigOptionEnum<GCodeFlavor>::get_enum_values();
def->enum_values.push_back("reprap"); def->enum_values.push_back("reprap");
def->enum_values.push_back("repetier"); def->enum_values.push_back("repetier");
@ -1785,10 +1785,10 @@ void PrintConfigDef::init_fff_params()
def->label = L("Start G-code"); def->label = L("Start G-code");
def->tooltip = L("This start procedure is inserted at the beginning, after bed has reached " def->tooltip = L("This start procedure is inserted at the beginning, after bed has reached "
"the target temperature and extruder just started heating, and before extruder " "the target temperature and extruder just started heating, and before extruder "
"has finished heating. If Slic3r detects M104 or M190 in your custom codes, " "has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, "
"such commands will not be prepended automatically so you're free to customize " "such commands will not be prepended automatically so you're free to customize "
"the order of heating commands and other custom actions. Note that you can use " "the order of heating commands and other custom actions. Note that you can use "
"placeholder variables for all Slic3r settings, so you can put " "placeholder variables for all PrusaSlicer settings, so you can put "
"a \"M109 S[first_layer_temperature]\" command wherever you want."); "a \"M109 S[first_layer_temperature]\" command wherever you want.");
def->multiline = true; def->multiline = true;
def->full_width = true; def->full_width = true;
@ -1800,11 +1800,11 @@ void PrintConfigDef::init_fff_params()
def->label = L("Start G-code"); def->label = L("Start G-code");
def->tooltip = L("This start procedure is inserted at the beginning, after any printer start gcode (and " def->tooltip = L("This start procedure is inserted at the beginning, after any printer start gcode (and "
"after any toolchange to this filament in case of multi-material printers). " "after any toolchange to this filament in case of multi-material printers). "
"This is used to override settings for a specific filament. If Slic3r detects " "This is used to override settings for a specific filament. If PrusaSlicer detects "
"M104, M109, M140 or M190 in your custom codes, such commands will " "M104, M109, M140 or M190 in your custom codes, such commands will "
"not be prepended automatically so you're free to customize the order " "not be prepended automatically so you're free to customize the order "
"of heating commands and other custom actions. Note that you can use placeholder variables " "of heating commands and other custom actions. Note that you can use placeholder variables "
"for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command " "for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command "
"wherever you want. If you have multiple extruders, the gcode is processed " "wherever you want. If you have multiple extruders, the gcode is processed "
"in extruder order."); "in extruder order.");
def->multiline = true; def->multiline = true;

View File

@ -3468,14 +3468,13 @@ static bool string_getter(const bool is_undo, int idx, const char** out_text)
void GLCanvas3D::_render_undo_redo_stack(const bool is_undo, float pos_x) void GLCanvas3D::_render_undo_redo_stack(const bool is_undo, float pos_x)
{ {
const wxString& stack_name = _(is_undo ? L("Undo") : L("Redo"));
ImGuiWrapper* imgui = wxGetApp().imgui(); ImGuiWrapper* imgui = wxGetApp().imgui();
const float x = pos_x * (float)get_camera().get_zoom() + 0.5f * (float)get_canvas_size().get_width(); const float x = pos_x * (float)get_camera().get_zoom() + 0.5f * (float)get_canvas_size().get_width();
imgui->set_next_window_pos(x, m_undoredo_toolbar.get_height(), ImGuiCond_Always, 0.5f, 0.0f); imgui->set_next_window_pos(x, m_undoredo_toolbar.get_height(), ImGuiCond_Always, 0.5f, 0.0f);
imgui->set_next_window_bg_alpha(0.5f); imgui->set_next_window_bg_alpha(0.5f);
imgui->begin(wxString::Format(_(L("%s Stack")), stack_name), std::string title = is_undo ? L("Undo History") : L("Redo History");
ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse); imgui->begin(_(title), ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
int hovered = m_imgui_undo_redo_hovered_pos; int hovered = m_imgui_undo_redo_hovered_pos;
int selected = -1; int selected = -1;
@ -3492,7 +3491,7 @@ void GLCanvas3D::_render_undo_redo_stack(const bool is_undo, float pos_x)
if (selected >= 0) if (selected >= 0)
is_undo ? wxGetApp().plater()->undo_to(selected) : wxGetApp().plater()->redo_to(selected); is_undo ? wxGetApp().plater()->undo_to(selected) : wxGetApp().plater()->redo_to(selected);
imgui->text(wxString::Format(_(L("%s %d Action")), stack_name, hovered + 1)); imgui->text(wxString::Format(_(hovered ? (is_undo ? L("Undo %d Actions") : L("Redo %d Actions")) : (is_undo ? L("Undo %d Action") : L("Redo %d Action"))), hovered + 1));
imgui->end(); imgui->end();
} }
@ -3645,7 +3644,7 @@ bool GLCanvas3D::_init_main_toolbar()
item.name = "layersediting"; item.name = "layersediting";
item.icon_filename = "layers_white.svg"; item.icon_filename = "layers_white.svg";
item.tooltip = _utf8(L("Layers editing")); item.tooltip = _utf8(L("Height ranges"));
item.sprite_id = 10; item.sprite_id = 10;
item.left.toggable = true; item.left.toggable = true;
item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_LAYERSEDITING)); }; item.left.action_callback = [this]() { if (m_canvas != nullptr) wxPostEvent(m_canvas, SimpleEvent(EVT_GLTOOLBAR_LAYERSEDITING)); };
@ -3696,7 +3695,7 @@ bool GLCanvas3D::_init_undoredo_toolbar()
item.name = "undo"; item.name = "undo";
item.icon_filename = "undo_toolbar.svg"; item.icon_filename = "undo_toolbar.svg";
item.tooltip = _utf8(L("Undo")) + " [" + GUI::shortkey_ctrl_prefix() + "Z]"; item.tooltip = _utf8(L("Undo")) + " [" + GUI::shortkey_ctrl_prefix() + "Z]\n" + _utf8(L("Click right mouse button to open History"));
item.sprite_id = 0; item.sprite_id = 0;
item.left.action_callback = [this]() { post_event(SimpleEvent(EVT_GLCANVAS_UNDO)); }; item.left.action_callback = [this]() { post_event(SimpleEvent(EVT_GLCANVAS_UNDO)); };
item.right.toggable = true; item.right.toggable = true;
@ -3710,8 +3709,11 @@ bool GLCanvas3D::_init_undoredo_toolbar()
m_undoredo_toolbar.get_additional_tooltip(id, curr_additional_tooltip); m_undoredo_toolbar.get_additional_tooltip(id, curr_additional_tooltip);
std::string new_additional_tooltip = ""; std::string new_additional_tooltip = "";
if (can_undo) if (can_undo) {
wxGetApp().plater()->undo_redo_topmost_string_getter(true, new_additional_tooltip); std::string action;
wxGetApp().plater()->undo_redo_topmost_string_getter(true, action);
new_additional_tooltip = (boost::format(_utf8(L("Undo action: %1%"))) % action).str();
}
if (new_additional_tooltip != curr_additional_tooltip) if (new_additional_tooltip != curr_additional_tooltip)
{ {
@ -3726,7 +3728,7 @@ bool GLCanvas3D::_init_undoredo_toolbar()
item.name = "redo"; item.name = "redo";
item.icon_filename = "redo_toolbar.svg"; item.icon_filename = "redo_toolbar.svg";
item.tooltip = _utf8(L("Redo")) + " [" + GUI::shortkey_ctrl_prefix() + "Y]"; item.tooltip = _utf8(L("Redo")) + " [" + GUI::shortkey_ctrl_prefix() + "Y]\n" + _utf8(L("Click right mouse button to open History"));
item.sprite_id = 1; item.sprite_id = 1;
item.left.action_callback = [this]() { post_event(SimpleEvent(EVT_GLCANVAS_REDO)); }; item.left.action_callback = [this]() { post_event(SimpleEvent(EVT_GLCANVAS_REDO)); };
item.right.action_callback = [this]() { m_imgui_undo_redo_hovered_pos = -1; }; item.right.action_callback = [this]() { m_imgui_undo_redo_hovered_pos = -1; };
@ -3739,8 +3741,11 @@ bool GLCanvas3D::_init_undoredo_toolbar()
m_undoredo_toolbar.get_additional_tooltip(id, curr_additional_tooltip); m_undoredo_toolbar.get_additional_tooltip(id, curr_additional_tooltip);
std::string new_additional_tooltip = ""; std::string new_additional_tooltip = "";
if (can_redo) if (can_redo) {
wxGetApp().plater()->undo_redo_topmost_string_getter(false, new_additional_tooltip); std::string action;
wxGetApp().plater()->undo_redo_topmost_string_getter(false, action);
new_additional_tooltip = (boost::format(_utf8(L("Redo action: %1%"))) % action).str();
}
if (new_additional_tooltip != curr_additional_tooltip) if (new_additional_tooltip != curr_additional_tooltip)
{ {

View File

@ -24,8 +24,8 @@ ObjectLayers::ObjectLayers(wxWindow* parent) :
m_grid_sizer->SetFlexibleDirection(wxHORIZONTAL); m_grid_sizer->SetFlexibleDirection(wxHORIZONTAL);
// Legend for object layers // Legend for object layers
for (const std::string col : { "Min Z", "Max Z", "Layer height" }) { for (const std::string col : { L("Start at height"), L("Stop at height"), L("Layer height") }) {
auto temp = new wxStaticText(m_parent, wxID_ANY, _(L(col)), wxDefaultPosition, /*size*/wxDefaultSize, wxST_ELLIPSIZE_MIDDLE); auto temp = new wxStaticText(m_parent, wxID_ANY, _(col), wxDefaultPosition, /*size*/wxDefaultSize, wxST_ELLIPSIZE_MIDDLE);
temp->SetFont(Slic3r::GUI::wxGetApp().normal_font()); temp->SetFont(Slic3r::GUI::wxGetApp().normal_font());
temp->SetBackgroundStyle(wxBG_STYLE_PAINT); temp->SetBackgroundStyle(wxBG_STYLE_PAINT);
temp->SetFont(wxGetApp().bold_font()); temp->SetFont(wxGetApp().bold_font());
@ -145,7 +145,7 @@ void ObjectLayers::create_layers_list()
auto sizer = create_layer(range); auto sizer = create_layer(range);
auto del_btn = new ScalableButton(m_parent, wxID_ANY, m_bmp_delete); auto del_btn = new ScalableButton(m_parent, wxID_ANY, m_bmp_delete);
del_btn->SetToolTip(_(L("Remove layer"))); del_btn->SetToolTip(_(L("Remove layer range")));
sizer->Add(del_btn, 0, wxRIGHT | wxLEFT, em_unit(m_parent)); sizer->Add(del_btn, 0, wxRIGHT | wxLEFT, em_unit(m_parent));
@ -154,7 +154,7 @@ void ObjectLayers::create_layers_list()
}); });
auto add_btn = new ScalableButton(m_parent, wxID_ANY, m_bmp_add); auto add_btn = new ScalableButton(m_parent, wxID_ANY, m_bmp_add);
add_btn->SetToolTip(_(L("Add layer"))); add_btn->SetToolTip(_(L("Add layer range")));
sizer->Add(add_btn, 0, wxRIGHT, em_unit(m_parent)); sizer->Add(add_btn, 0, wxRIGHT, em_unit(m_parent));

View File

@ -1249,7 +1249,7 @@ void ObjectList::get_freq_settings_choice(const wxString& bundle_name)
assert(m_config); assert(m_config);
auto opt_keys = m_config->keys(); auto opt_keys = m_config->keys();
const wxString snapshot_text = item_type & itLayer ? _(L("Add Settings Bundle for Layers")) : const wxString snapshot_text = item_type & itLayer ? _(L("Add Settings Bundle for Height range")) :
item_type & itVolume ? _(L("Add Settings Bundle for Sub-object")) : item_type & itVolume ? _(L("Add Settings Bundle for Sub-object")) :
_(L("Add Settings Bundle for Object")); _(L("Add Settings Bundle for Object"));
take_snapshot(snapshot_text); take_snapshot(snapshot_text);
@ -1347,7 +1347,7 @@ wxMenuItem* ObjectList::append_menu_item_split(wxMenu* menu)
wxMenuItem* ObjectList::append_menu_item_layers_editing(wxMenu* menu) wxMenuItem* ObjectList::append_menu_item_layers_editing(wxMenu* menu)
{ {
return append_menu_item(menu, wxID_ANY, _(L("Edit Layers")), "", return append_menu_item(menu, wxID_ANY, _(L("Height range Modifier")), "",
[this](wxCommandEvent&) { layers_editing(); }, "edit_layers_all", menu); [this](wxCommandEvent&) { layers_editing(); }, "edit_layers_all", menu);
} }
@ -1895,7 +1895,7 @@ void ObjectList::del_layer_from_object(const int obj_idx, const t_layer_height_r
if (del_range == object(obj_idx)->layer_config_ranges.end()) if (del_range == object(obj_idx)->layer_config_ranges.end())
return; return;
take_snapshot(_(L("Delete Layers Range"))); take_snapshot(_(L("Delete Height Range")));
object(obj_idx)->layer_config_ranges.erase(del_range); object(obj_idx)->layer_config_ranges.erase(del_range);
@ -2203,7 +2203,7 @@ void ObjectList::part_selection_changed()
m_config = &(*m_objects)[obj_idx]->config; m_config = &(*m_objects)[obj_idx]->config;
} }
else if (type & (itLayerRoot|itLayer)) { else if (type & (itLayerRoot|itLayer)) {
og_name = type & itLayerRoot ? _(L("Layers Editing")) : _(L("Layer Editing")); og_name = type & itLayerRoot ? _(L("Height ranges")) : _(L("Settings for height range"));
update_and_show_layers = true; update_and_show_layers = true;
if (type & itLayer) if (type & itLayer)
@ -2581,7 +2581,7 @@ void ObjectList::add_layer_range_after_current(const t_layer_height_range& curre
if (current_range == last_range) if (current_range == last_range)
{ {
take_snapshot(_(L("Add New Layers Range"))); take_snapshot(_(L("Add Height Range")));
const t_layer_height_range& new_range = { last_range.second, last_range.second + 2.0f }; const t_layer_height_range& new_range = { last_range.second, last_range.second + 2.0f };
ranges[new_range] = get_default_layer_config(obj_idx); ranges[new_range] = get_default_layer_config(obj_idx);
@ -2610,7 +2610,7 @@ void ObjectList::add_layer_range_after_current(const t_layer_height_range& curre
t_layer_height_range new_range = { midl_layer, next_range.second }; t_layer_height_range new_range = { midl_layer, next_range.second };
Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Add New Layers Range"))); Plater::TakeSnapshot snapshot(wxGetApp().plater(), _(L("Add Height Range")));
// create new 2 layers instead of deleted one // create new 2 layers instead of deleted one
@ -2628,7 +2628,7 @@ void ObjectList::add_layer_range_after_current(const t_layer_height_range& curre
} }
else else
{ {
take_snapshot(_(L("Add New Layers Range"))); take_snapshot(_(L("Add Height Range")));
const t_layer_height_range new_range = { current_range.second, next_range.first }; const t_layer_height_range new_range = { current_range.second, next_range.first };
ranges[new_range] = get_default_layer_config(obj_idx); ranges[new_range] = get_default_layer_config(obj_idx);
@ -2687,7 +2687,7 @@ bool ObjectList::edit_layer_range(const t_layer_height_range& range, const t_lay
const int obj_idx = get_selected_obj_idx(); const int obj_idx = get_selected_obj_idx();
if (obj_idx < 0) return false; if (obj_idx < 0) return false;
take_snapshot(_(L("Edit Layers Range"))); take_snapshot(_(L("Edit Height Range")));
const ItemType sel_type = m_objects_model->GetItemType(GetSelection()); const ItemType sel_type = m_objects_model->GetItemType(GetSelection());

View File

@ -562,7 +562,7 @@ void ObjectManipulation::update_if_dirty()
if (selection.requires_uniform_scale()) { if (selection.requires_uniform_scale()) {
m_lock_bnt->SetLock(true); m_lock_bnt->SetLock(true);
m_lock_bnt->SetToolTip(_(L("You cann't use non-uniform scaling mode for multiple objects/parts selection"))); m_lock_bnt->SetToolTip(_(L("You cannot use non-uniform scaling mode for multiple objects/parts selection")));
m_lock_bnt->disable(); m_lock_bnt->disable();
} }
else { else {

View File

@ -252,7 +252,6 @@ bool Preview::init(wxWindow* parent, Bed3D& bed, Camera& camera, GLToolbar& view
m_checkbox_retractions = new wxCheckBox(this, wxID_ANY, _(L("Retractions"))); m_checkbox_retractions = new wxCheckBox(this, wxID_ANY, _(L("Retractions")));
m_checkbox_unretractions = new wxCheckBox(this, wxID_ANY, _(L("Unretractions"))); m_checkbox_unretractions = new wxCheckBox(this, wxID_ANY, _(L("Unretractions")));
m_checkbox_shells = new wxCheckBox(this, wxID_ANY, _(L("Shells"))); m_checkbox_shells = new wxCheckBox(this, wxID_ANY, _(L("Shells")));
m_checkbox_legend = new wxCheckBox(this, wxID_ANY, _(L("Legend"))); m_checkbox_legend = new wxCheckBox(this, wxID_ANY, _(L("Legend")));
m_checkbox_legend->SetValue(true); m_checkbox_legend->SetValue(true);

View File

@ -151,7 +151,7 @@ void KBShortcutsDialog::fill_shortcuts()
plater_shortcuts.push_back(Shortcut("F", L("Press to scale selection to fit print volume\nin Gizmo scale"))); plater_shortcuts.push_back(Shortcut("F", L("Press to scale selection to fit print volume\nin Gizmo scale")));
plater_shortcuts.push_back(Shortcut(alt, L("Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center"))); plater_shortcuts.push_back(Shortcut(alt, L("Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center")));
plater_shortcuts.push_back(Shortcut(ctrl, L("Press to activate one direction scaling in Gizmo scale"))); plater_shortcuts.push_back(Shortcut(ctrl, L("Press to activate one direction scaling in Gizmo scale")));
plater_shortcuts.push_back(Shortcut("K", L("Change camera type"))); plater_shortcuts.push_back(Shortcut("K", L("Change camera type (perspective, orthographic)")));
plater_shortcuts.push_back(Shortcut("B", L("Zoom to Bed"))); plater_shortcuts.push_back(Shortcut("B", L("Zoom to Bed")));
plater_shortcuts.push_back(Shortcut("Z", L("Zoom to all objects in scene, if none selected"))); plater_shortcuts.push_back(Shortcut("Z", L("Zoom to all objects in scene, if none selected")));
plater_shortcuts.push_back(Shortcut("Z", L("Zoom to selected object"))); plater_shortcuts.push_back(Shortcut("Z", L("Zoom to selected object")));

View File

@ -2240,7 +2240,7 @@ std::vector<size_t> Plater::priv::load_files(const std::vector<fs::path>& input_
if (object->volumes.size() > 1) if (object->volumes.size() > 1)
{ {
Slic3r::GUI::show_info(nullptr, Slic3r::GUI::show_info(nullptr,
_(L("You can't to load SLA project if there is at least one multi-part object on the bed")) + "\n\n" + _(L("You can't load SLA project if there is at least one multi-part object on the bed")) + "\n\n" +
_(L("Please check your object list before preset changing.")), _(L("Please check your object list before preset changing.")),
_(L("Attention!"))); _(L("Attention!")));
return obj_idxs; return obj_idxs;