From 47f1f2de5f7c0929ac954c1896d59faec806159b Mon Sep 17 00:00:00 2001 From: Alexandre Folle de Menezes Date: Mon, 5 Oct 2026 10:38:52 -0300 Subject: [PATCH] Add context to XYZ axis names (#16134) --- src/libslic3r/PrintConfig.cpp | 12 +++++------ src/slic3r/GUI/CAD/DesignPanel.cpp | 32 +++++++++++++++--------------- src/slic3r/GUI/GLCanvas3D.cpp | 6 +++--- src/slic3r/GUI/StatusPanel.cpp | 2 +- 4 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/libslic3r/PrintConfig.cpp b/src/libslic3r/PrintConfig.cpp index 76073b4981..4c8f45158d 100644 --- a/src/libslic3r/PrintConfig.cpp +++ b/src/libslic3r/PrintConfig.cpp @@ -5301,7 +5301,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionEnum(InputShaperType::Default)); def = this->add("input_shaping_freq_x", coFloat); - def->label = L("X"); + def->label = L_CONTEXT("X", "Axis"); def->tooltip = L("Resonant frequency for the X axis input shaper.\nZero will use the firmware frequency.\nTo disable input shaping, use the Disable type.\nRRF: X and Y values are equal."); def->sidetext = L("Hz"); // Hertz, CIS languages need translation def->min = 0; @@ -5310,7 +5310,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(0)); def = this->add("input_shaping_freq_y", coFloat); - def->label = L("Y"); + def->label = L_CONTEXT("Y", "Axis"); def->tooltip = L("Resonant frequency for the Y axis input shaper.\nZero will use the firmware frequency.\nTo disable input shaping, use the Disable type."); def->sidetext = L("Hz"); // Hertz, CIS languages need translation def->min = 0; @@ -5319,7 +5319,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(0)); def = this->add("input_shaping_damp_x", coFloat); - def->label = L("X"); + def->label = L_CONTEXT("X", "Axis"); def->tooltip = L("Damping ratio for the X axis input shaper.\nZero will use the firmware damping ratio.\nTo disable input shaping, use the Disable type.\nRRF: X and Y values are equal."); def->min = 0; def->max = 1; @@ -5327,7 +5327,7 @@ void PrintConfigDef::init_fff_params() def->set_default_value(new ConfigOptionFloat(0.1)); def = this->add("input_shaping_damp_y", coFloat); - def->label = L("Y"); + def->label = L_CONTEXT("Y", "Axis"); def->tooltip = L("Damping ratio for the Y axis input shaper.\nZero will use the firmware damping ratio.\nTo disable input shaping, use the Disable type."); def->min = 0; def->max = 1; @@ -8530,14 +8530,14 @@ void PrintConfigDef::init_sla_params() def = this->add("display_pixels_x", coInt); //def->full_label = L(""); - def->label = ("X"); + def->label = L_CONTEXT("X", "Axis"); //def->tooltip = L(""); def->min = 100; def->set_default_value(new ConfigOptionInt(2560)); def = this->add("display_pixels_y", coInt); //def->full_label = L(""); - def->label = ("Y"); + def->label = L_CONTEXT("Y", "Axis"); //def->tooltip = L(""); def->min = 100; def->set_default_value(new ConfigOptionInt(1440)); diff --git a/src/slic3r/GUI/CAD/DesignPanel.cpp b/src/slic3r/GUI/CAD/DesignPanel.cpp index 046bf0486d..713fbcec74 100644 --- a/src/slic3r/GUI/CAD/DesignPanel.cpp +++ b/src/slic3r/GUI/CAD/DesignPanel.cpp @@ -1860,9 +1860,9 @@ DesignPanel::DesignPanel(wxWindow* parent) mform->Add(spin_frame(m_move_dz), 0, wxEXPAND); m_move_axis = make_combo(m_cards); - m_move_axis->Append(_L("X")); - m_move_axis->Append(_L("Y")); - m_move_axis->Append(_L("Z")); + m_move_axis->Append(_L_CONTEXT("X", "Axis")); + m_move_axis->Append(_L_CONTEXT("Y", "Axis")); + m_move_axis->Append(_L_CONTEXT("Z", "Axis")); m_move_axis->SetSelection(2); mform->Add(new wxStaticText(m_cards, wxID_ANY, _L("Rotation axis")), 0, wxALIGN_CENTER_VERTICAL); mform->Add(m_move_axis, 0, wxEXPAND); @@ -1988,9 +1988,9 @@ DesignPanel::DesignPanel(wxWindow* parent) auto* hform = two_col_form(); m_hole_plane = make_combo(m_cards); - m_hole_plane->Append(_L("XY")); - m_hole_plane->Append(_L("XZ")); - m_hole_plane->Append(_L("YZ")); + m_hole_plane->Append(_L_CONTEXT("XY", "Axis")); + m_hole_plane->Append(_L_CONTEXT("XZ", "Axis")); + m_hole_plane->Append(_L_CONTEXT("YZ", "Axis")); m_hole_plane->SetSelection(0); // Picking a plane here is an explicit choice: drop any on-face hijack (a stale face pick // could keep m_hole_on_face true, so the dropdown was ignored and the hole drilled on the @@ -2041,9 +2041,9 @@ DesignPanel::DesignPanel(wxWindow* parent) auto* tform = two_col_form(); m_thread_plane = make_combo(m_cards); - m_thread_plane->Append(_L("XY")); - m_thread_plane->Append(_L("XZ")); - m_thread_plane->Append(_L("YZ")); + m_thread_plane->Append(_L_CONTEXT("XY", "Axis")); + m_thread_plane->Append(_L_CONTEXT("XZ", "Axis")); + m_thread_plane->Append(_L_CONTEXT("YZ", "Axis")); m_thread_plane->SetSelection(0); tform->Add(new wxStaticText(m_cards, wxID_ANY, _L("Thread plane")), 0, wxALIGN_CENTER_VERTICAL); tform->Add(m_thread_plane, 0, wxEXPAND); @@ -2564,9 +2564,9 @@ DesignPanel::DesignPanel(wxWindow* parent) xform->Add(new wxStaticText(m_cards, wxID_ANY, _L("Translate Z")), 0, wxALIGN_CENTER_VERTICAL); xform->Add(spin_frame(m_xf_dz), 0, wxEXPAND); m_xf_axis = make_combo(m_cards); - m_xf_axis->Append(_L("X")); - m_xf_axis->Append(_L("Y")); - m_xf_axis->Append(_L("Z")); + m_xf_axis->Append(_L_CONTEXT("X", "Axis")); + m_xf_axis->Append(_L_CONTEXT("Y", "Axis")); + m_xf_axis->Append(_L_CONTEXT("Z", "Axis")); m_xf_axis->SetSelection(2); // default Z m_xf_axis->Bind(wxEVT_COMBOBOX, [this](wxCommandEvent&) { refresh_preview(); }); xform->Add(new wxStaticText(m_cards, wxID_ANY, _L("Rotate axis")), 0, wxALIGN_CENTER_VERTICAL); @@ -2904,11 +2904,11 @@ DesignPanel::DesignPanel(wxWindow* parent) m_cs_x = make_spin(m_cards, 0.0, -100000.0, 100000.0); m_cs_y = make_spin(m_cards, 0.0, -100000.0, 100000.0); m_cs_z = make_spin(m_cards, 0.0, -100000.0, 100000.0); - csform->Add(new wxStaticText(m_cards, wxID_ANY, _L("X")), 0, wxALIGN_CENTER_VERTICAL); + csform->Add(new wxStaticText(m_cards, wxID_ANY, _L_CONTEXT("X", "Axis")), 0, wxALIGN_CENTER_VERTICAL); csform->Add(spin_frame(m_cs_x), 0, wxEXPAND); - csform->Add(new wxStaticText(m_cards, wxID_ANY, _L("Y")), 0, wxALIGN_CENTER_VERTICAL); + csform->Add(new wxStaticText(m_cards, wxID_ANY, _L_CONTEXT("Y", "Axis")), 0, wxALIGN_CENTER_VERTICAL); csform->Add(spin_frame(m_cs_y), 0, wxEXPAND); - csform->Add(new wxStaticText(m_cards, wxID_ANY, _L("Z")), 0, wxALIGN_CENTER_VERTICAL); + csform->Add(new wxStaticText(m_cards, wxID_ANY, _L_CONTEXT("Z", "Axis")), 0, wxALIGN_CENTER_VERTICAL); csform->Add(spin_frame(m_cs_z), 0, wxEXPAND); auto cs_pick = [&](const wxString& label, ::Button*& btn, wxStaticText*& lbl, CoordSysPick target) { @@ -6082,7 +6082,7 @@ void DesignPanel::populate_plane_choices(ComboBox* c) const if (!c) return; const int keep = c->GetSelection(); c->Clear(); - c->Append(_L("XY")); c->Append(_L("XZ")); c->Append(_L("YZ")); + c->Append(_L_CONTEXT("XY", "Axis")); c->Append(_L_CONTEXT("XZ", "Axis")); c->Append(_L_CONTEXT("YZ", "Axis")); for (const auto& dp : m_doc.resolve_datum_planes()) c->Append(wxString::FromUTF8(dp.first)); c->SetSelection((keep >= 0 && keep < int(c->GetCount())) ? keep : 0); diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 36f632096c..3ac425db0a 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -6322,9 +6322,9 @@ void GLCanvas3D::_render_3d_navigator() style.Colors[ImGuizmo::COLOR::DIRECTION_Z] = ImGuiWrapper::to_ImVec4(ColorRGBA::X()); style.Colors[ImGuizmo::COLOR::TEXT] = m_is_dark ? ImVec4(224 / 255.f, 224 / 255.f, 224 / 255.f, 1.f) : ImVec4(.2f, .2f, .2f, 1.0f); style.Colors[ImGuizmo::COLOR::FACE] = m_is_dark ? ImVec4(0.23f, 0.23f, 0.23f, 1.f) : ImVec4(0.77f, 0.77f, 0.77f, 1); - strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_X], "Y"); // ORCA use uppercase to match text on tranform widgets - strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_Y], "Z"); // ORCA use uppercase to match text on tranform widgets - strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_Z], "X"); // ORCA use uppercase to match text on tranform widgets + strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_X], _u8L_CONTEXT("Y", "Axis").c_str()); // ORCA use uppercase to match text on tranform widgets + strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_Y], _u8L_CONTEXT("Z", "Axis").c_str()); // ORCA use uppercase to match text on tranform widgets + strcpy(style.AxisLabels[ImGuizmo::Axis::Axis_Z], _u8L_CONTEXT("X", "Axis").c_str()); // ORCA use uppercase to match text on tranform widgets strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_FRONT], _u8L_CONTEXT("Front", "Camera View").c_str()); strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_BACK], _u8L_CONTEXT("Back", "Camera View").c_str()); strcpy(style.FaceLabels[ImGuizmo::FACES::FACE_TOP], _u8L_CONTEXT("Top", "Camera View").c_str()); diff --git a/src/slic3r/GUI/StatusPanel.cpp b/src/slic3r/GUI/StatusPanel.cpp index 7d0cf73581..3f98b9c840 100644 --- a/src/slic3r/GUI/StatusPanel.cpp +++ b/src/slic3r/GUI/StatusPanel.cpp @@ -3387,7 +3387,7 @@ void StatusPanel::update_misc_ctrl(MachineObject *obj) if (obj->is_core_xy()) { m_staticText_z_tip->SetLabel(_L("Bed")); } else { - m_staticText_z_tip->SetLabel("Z"); + m_staticText_z_tip->SetLabel(_L_CONTEXT("Z", "Axis")); } // update extruder icon