FIX: Copywriting updates

JIRA: NONE

Change-Id: I6df034f95b4e6d517c57286dd6f564510b9fa4ab
This commit is contained in:
Kunlong Ma 2024-01-04 20:21:38 +08:00 committed by Lane.Wei
parent ca96b61781
commit 8cba6a3566
30 changed files with 93 additions and 92 deletions

View File

@ -844,7 +844,7 @@ std::vector<GCode::LayerToPrint> GCode::collect_layers_to_print(const PrintObjec
// first layer may result in skirt/brim in the air and maybe other issues. // first layer may result in skirt/brim in the air and maybe other issues.
if (layers_to_print.size() == 1u) { if (layers_to_print.size() == 1u) {
if (!has_extrusions) if (!has_extrusions)
throw Slic3r::SlicingError(_(L("The following object(s) have empty initial layer and can't be printed. Please Cut the bottom or enable supports.")), object.id().id); throw Slic3r::SlicingError(_(L("The following object(s) have empty initial layer and can't be printed. Please cut the bottom or enable supports.")), object.id().id);
} }
// In case there are extrusions on this layer, check there is a layer to lay it on. // In case there are extrusions on this layer, check there is a layer to lay it on.

View File

@ -1222,7 +1222,7 @@ StringObjectException Print::validate(StringObjectException *warning, Polygons*
// BBS // BBS
#if 0 #if 0
if (this->has_wipe_tower() && object->config().independent_support_layer_height) { if (this->has_wipe_tower() && object->config().independent_support_layer_height) {
return {L("The prime tower requires that support has the same layer height with object."), object, "support_filament"}; return {L("The prime tower requires that support has the same layer height as object."), object, "support_filament"};
} }
#endif #endif
} }

View File

@ -541,7 +541,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("reduce_crossing_wall", coBool); def = this->add("reduce_crossing_wall", coBool);
def->label = L("Avoid crossing wall"); def->label = L("Avoid crossing wall");
def->category = L("Quality"); def->category = L("Quality");
def->tooltip = L("Detour and avoid to travel across wall which may cause blob on surface"); def->tooltip = L("Detour and avoid traveling across wall which may cause blob on surface");
def->mode = comAdvanced; def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false)); def->set_default_value(new ConfigOptionBool(false));
@ -549,7 +549,7 @@ void PrintConfigDef::init_fff_params()
def->label = L("Avoid crossing wall - Max detour length"); def->label = L("Avoid crossing wall - Max detour length");
def->category = L("Quality"); def->category = L("Quality");
def->tooltip = L("Maximum detour distance for avoiding crossing wall. " def->tooltip = L("Maximum detour distance for avoiding crossing wall. "
"Don't detour if the detour distance is large than this value. " "Don't detour if the detour distance is larger than this value. "
"Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable"); "Detour length could be specified either as an absolute value or as percentage (for example 50%) of a direct travel path. Zero to disable");
def->sidetext = L("mm or %"); def->sidetext = L("mm or %");
def->min = 0; def->min = 0;
@ -693,7 +693,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("bottom_shell_thickness", coFloat); def = this->add("bottom_shell_thickness", coFloat);
def->label = L("Bottom shell thickness"); def->label = L("Bottom shell thickness");
def->category = L("Strength"); def->category = L("Strength");
def->tooltip = L("The number of bottom solid layers is increased when slicing if the thickness calculated by bottom shell layers is " def->tooltip = L("The number of bottom solid layers is increased when slicing if the thickness calculated by bottom shells layers is "
"thinner than this value. This can avoid having too thin shell when layer height is small. 0 means that " "thinner than this value. This can avoid having too thin shell when layer height is small. 0 means that "
"this setting is disabled and thickness of bottom shell is absolutely determained by bottom shell layers"); "this setting is disabled and thickness of bottom shell is absolutely determained by bottom shell layers");
def->full_label = L("Bottom shell thickness"); def->full_label = L("Bottom shell thickness");
@ -709,7 +709,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("overhang_fan_speed", coInts); def = this->add("overhang_fan_speed", coInts);
def->label = L("Fan speed for overhang"); def->label = L("Fan speed for overhang");
def->tooltip = L("Force part cooling fan to be this speed when printing bridge or overhang wall which has large overhang degree. " def->tooltip = L("Force part cooling fan to be at this speed when printing bridge or overhang wall which has large overhang degree. "
"Forcing cooling for overhang and bridge can get better quality for these part"); "Forcing cooling for overhang and bridge can get better quality for these part");
def->sidetext = "%"; def->sidetext = "%";
def->min = 0; def->min = 0;
@ -780,7 +780,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("top_one_wall_type", coEnum); def = this->add("top_one_wall_type", coEnum);
def->label = L("Only one wall on top surfaces"); def->label = L("Only one wall on top surfaces");
def->category = L("Quality"); def->category = L("Quality");
def->tooltip = L("Use only one wall on flat top surface, to give more space to the top infill pattern. Could be applyed on topmost surface or all top surface."); def->tooltip = L("Use only one wall on flat top surface, to give more space to the top infill pattern. Could be applied on topmost surface or all top surface.");
def->enum_keys_map = &ConfigOptionEnum<TopOneWallType>::get_enum_values(); def->enum_keys_map = &ConfigOptionEnum<TopOneWallType>::get_enum_values();
def->enum_values.push_back("not apply"); def->enum_values.push_back("not apply");
def->enum_values.push_back("all top"); def->enum_values.push_back("all top");
@ -979,7 +979,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("slow_down_for_layer_cooling", coBools); def = this->add("slow_down_for_layer_cooling", coBools);
def->label = L("Slow printing down for better layer cooling"); def->label = L("Slow printing down for better layer cooling");
def->tooltip = L("Enable this option to slow printing speed down to make the final layer time not shorter than " def->tooltip = L("Enable this option to slow printing speed down to make the final layer time not shorter than "
"the layer time threshold in \"Max fan speed threshold\", so that layer can be cooled for longer time. " "the layer time threshold in \"Max fan speed threshold\", so that layer can be cooled for a longer time. "
"This can improve the cooling quality for needle and small details"); "This can improve the cooling quality for needle and small details");
def->set_default_value(new ConfigOptionBools { true }); def->set_default_value(new ConfigOptionBools { true });
@ -1011,7 +1011,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("during_print_exhaust_fan_speed", coInts); def = this->add("during_print_exhaust_fan_speed", coInts);
def->label = L("Fan speed"); def->label = L("Fan speed");
def->tooltip=L("Speed of exhuast fan during printing.This speed will overwrite the speed in filament custom gcode"); def->tooltip=L("Speed of exhaust fan during printing.This speed will overwrite the speed in filament custom gcode");
def->sidetext = "%"; def->sidetext = "%";
def->min=0; def->min=0;
def->max=100; def->max=100;
@ -1040,7 +1040,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("bridge_no_support", coBool); def = this->add("bridge_no_support", coBool);
def->label = L("Don't support bridges"); def->label = L("Don't support bridges");
def->category = L("Support"); def->category = L("Support");
def->tooltip = L("Don't support the whole bridge area which make support very large. " def->tooltip = L("Don't support the whole bridge area which makes support very large. "
"Bridge usually can be printing directly without support if not very long"); "Bridge usually can be printing directly without support if not very long");
def->mode = comAdvanced; def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(false)); def->set_default_value(new ConfigOptionBool(false));
@ -1100,9 +1100,10 @@ void PrintConfigDef::init_fff_params()
def = this->add("internal_bridge_support_thickness", coFloat); def = this->add("internal_bridge_support_thickness", coFloat);
def->label = L("Internal bridge support thickness"); def->label = L("Internal bridge support thickness");
def->category = L("Strength"); def->category = L("Strength");
def->tooltip = L("If enabled, Studio will generate support loops under the contours of internal bridges." def->tooltip = L("When sparse infill density is low, the internal solid infill or internal bridge may have no archor at the end of line. "
"These support loops could prevent internal bridges from extruding over the air and improve the top surface quality, especially when the sparse infill density is low." "This causes falling and bad quality when printing internal solid infill. "
"This value determines the thickness of the support loops. 0 means disable this feature"); "When enable this feature, loop paths will be added to the sparse fill of the lower layers for specific thickness, so that better archor can be provided for internal bridge. "
"0 means disable this feature");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->min = 0; def->min = 0;
def->max = 2; def->max = 2;
@ -1330,8 +1331,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("reduce_fan_stop_start_freq", coBools); def = this->add("reduce_fan_stop_start_freq", coBools);
def->label = L("Keep fan always on"); def->label = L("Keep fan always on");
def->tooltip = L("If enable this setting, part cooling fan will never be stoped and will run at least " def->tooltip = L("If enable this setting, part cooling fan will never be stopped and will run at least "
"at minimum speed to reduce the frequency of starting and stoping"); "at minimum speed to reduce the frequency of starting and stopping");
def->set_default_value(new ConfigOptionBools { false }); def->set_default_value(new ConfigOptionBools { false });
def = this->add("fan_cooling_layer_time", coInts); def = this->add("fan_cooling_layer_time", coInts);
@ -1669,7 +1670,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("initial_layer_print_height", coFloat); def = this->add("initial_layer_print_height", coFloat);
def->label = L("Initial layer height"); def->label = L("Initial layer height");
def->category = L("Quality"); def->category = L("Quality");
def->tooltip = L("Height of initial layer. Making initial layer height to be thick slightly can improve build plate adhension"); def->tooltip = L("Height of initial layer. Making initial layer height thick slightly can improve build plate adhension");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->min = 0; def->min = 0;
def->set_default_value(new ConfigOptionFloat(0.2)); def->set_default_value(new ConfigOptionFloat(0.2));
@ -1748,7 +1749,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("fuzzy_skin_point_distance", coFloat); def = this->add("fuzzy_skin_point_distance", coFloat);
def->label = L("Fuzzy skin point distance"); def->label = L("Fuzzy skin point distance");
def->category = L("Others"); def->category = L("Others");
def->tooltip = L("The average diatance between the random points introducded on each line segment"); def->tooltip = L("The average distance between the random points introduced on each line segment");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->min = 0; def->min = 0;
def->max = 5; def->max = 5;
@ -1774,7 +1775,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("enable_arc_fitting", coBool); def = this->add("enable_arc_fitting", coBool);
def->label = L("Arc fitting"); def->label = L("Arc fitting");
def->tooltip = L("Enable this to get a G-code file which has G2 and G3 moves. " def->tooltip = L("Enable this to get a G-code file which has G2 and G3 moves. "
"And the fitting tolerance is same with resolution"); "And the fitting tolerance is the same as resolution");
def->mode = comAdvanced; def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBool(0)); def->set_default_value(new ConfigOptionBool(0));
// BBS // BBS
@ -2303,8 +2304,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("max_layer_height", coFloats); def = this->add("max_layer_height", coFloats);
def->label = L("Max"); def->label = L("Max");
def->tooltip = L("The largest printable layer height for extruder. Used tp limits " def->tooltip = L("The largest printable layer height for extruder. Used to limit "
"the maximum layer hight when enable adaptive layer height"); "the maximum layer height when enable adaptive layer height");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->min = 0; def->min = 0;
def->mode = comAdvanced; def->mode = comAdvanced;
@ -2346,7 +2347,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("additional_cooling_fan_speed", coInts); def = this->add("additional_cooling_fan_speed", coInts);
def->label = L("Fan speed"); def->label = L("Fan speed");
def->tooltip = L("Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed during printing except the first several layers " def->tooltip = L("Speed of auxiliary part cooling fan. Auxiliary fan will run at this speed during printing except the first several layers "
"which is defined by no cooling layers"); "which are defined by no cooling layers");
def->sidetext = "%"; def->sidetext = "%";
def->min = 0; def->min = 0;
def->max = 100; def->max = 100;
@ -2355,8 +2356,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("min_layer_height", coFloats); def = this->add("min_layer_height", coFloats);
def->label = L("Min"); def->label = L("Min");
def->tooltip = L("The lowest printable layer height for extruder. Used tp limits " def->tooltip = L("The lowest printable layer height for extruder. Used to limit "
"the minimum layer hight when enable adaptive layer height"); "the minimum layer height when enable adaptive layer height");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->min = 0; def->min = 0;
def->mode = comAdvanced; def->mode = comAdvanced;
@ -2411,7 +2412,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("start_end_points", coPoints); def = this->add("start_end_points", coPoints);
def->label = L("Start end points"); def->label = L("Start end points");
def->tooltip = L("The start and end points which is from cutter area to garbage can."); def->tooltip = L("The start and end points which are from cutter area to garbage can.");
def->mode = comDevelop; def->mode = comDevelop;
def->readonly = true; def->readonly = true;
// start and end point is from the change_filament_gcode // start and end point is from the change_filament_gcode
@ -2575,8 +2576,8 @@ void PrintConfigDef::init_fff_params()
def = this->add("resolution", coFloat); def = this->add("resolution", coFloat);
def->label = L("Resolution"); def->label = L("Resolution");
def->tooltip = L("G-code path is genereated after simplifing the contour of model to avoid too much points and gcode lines " def->tooltip = L("G-code path is generated after simplifying the contour of model to avoid too many points and gcode lines "
"in gcode file. Smaller value means higher resolution and more time to slice"); "in the gcode file. Smaller value means higher resolution and more time to slice");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->min = 0; def->min = 0;
def->mode = comAdvanced; def->mode = comAdvanced;
@ -2625,7 +2626,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("z_hop", coFloats); def = this->add("z_hop", coFloats);
def->label = L("Z hop when retract"); def->label = L("Z hop when retract");
def->tooltip = L("Whenever the retraction is done, the nozzle is lifted a little to create clearance between nozzle and the print. " def->tooltip = L("Whenever the retraction is done, the nozzle is lifted a little to create clearance between nozzle and the print. "
"It prevents nozzle from hitting the print when travel move. " "It prevents nozzle from hitting the print when travel moves. "
"Using spiral line to lift z can prevent stringing"); "Using spiral line to lift z can prevent stringing");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->mode = comSimple; def->mode = comSimple;
@ -2705,7 +2706,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("deretraction_speed", coFloats); def = this->add("deretraction_speed", coFloats);
def->label = L("Deretraction Speed"); def->label = L("Deretraction Speed");
def->full_label = L("Deretraction Speed"); def->full_label = L("Deretraction Speed");
def->tooltip = L("Speed for reloading filament into extruder. Zero means same speed with retraction"); def->tooltip = L("Speed for reloading filament into extruder. Zero means the same speed as retraction");
def->sidetext = L("mm/s"); def->sidetext = L("mm/s");
def->mode = comAdvanced; def->mode = comAdvanced;
def->set_default_value(new ConfigOptionFloats { 0. }); def->set_default_value(new ConfigOptionFloats { 0. });
@ -3284,7 +3285,7 @@ void PrintConfigDef::init_fff_params()
def = this->add("tree_support_wall_count", coInt); def = this->add("tree_support_wall_count", coInt);
def->label = L("Support wall loops"); def->label = L("Support wall loops");
def->category = L("Support"); def->category = L("Support");
def->tooltip = L("This setting specify the count of walls around support"); def->tooltip = L("This setting specifies the count of walls around support");
def->min = 0; def->min = 0;
def->mode = comAdvanced; def->mode = comAdvanced;
def->set_default_value(new ConfigOptionInt(0)); def->set_default_value(new ConfigOptionInt(0));
@ -3431,13 +3432,13 @@ void PrintConfigDef::init_fff_params()
def = this->add("wipe", coBools); def = this->add("wipe", coBools);
def->label = L("Wipe while retracting"); def->label = L("Wipe while retracting");
def->tooltip = L("Move nozzle along the last extrusion path when retracting to clean leaked material on nozzle. " def->tooltip = L("Move nozzle along the last extrusion path when retracting to clean leaked material on nozzle. "
"This can minimize blob when print new part after travel"); "This can minimize blob when printing new part after travel");
def->mode = comAdvanced; def->mode = comAdvanced;
def->set_default_value(new ConfigOptionBools { false }); def->set_default_value(new ConfigOptionBools { false });
def = this->add("wipe_distance", coFloats); def = this->add("wipe_distance", coFloats);
def->label = L("Wipe Distance"); def->label = L("Wipe Distance");
def->tooltip = L("Discribe how long the nozzle will move along the last path when retracting"); def->tooltip = L("Describe how long the nozzle will move along the last path when retracting");
def->sidetext = L("mm"); def->sidetext = L("mm");
def->min = 0; def->min = 0;
def->mode = comAdvanced; def->mode = comAdvanced;
@ -5336,8 +5337,8 @@ CLITransformConfigDef::CLITransformConfigDef()
def->set_default_value(new ConfigOptionInt(0)); def->set_default_value(new ConfigOptionInt(0));
def = this->add("repetitions", coInt); def = this->add("repetitions", coInt);
def->label = "Repetions count"; def->label = "Repetition count";
def->tooltip = "Repetions count of the whole model"; def->tooltip = "Repetition count of the whole model";
def->cli_params = "count"; def->cli_params = "count";
def->set_default_value(new ConfigOptionInt(1)); def->set_default_value(new ConfigOptionInt(1));

View File

@ -65,7 +65,7 @@ void AMSSetting::create()
// tip line2 // tip line2
m_tip_Insert_material_line2 = new Label(m_panel_body, m_tip_Insert_material_line2 = new Label(m_panel_body,
_L("Note: if new filament is inserted during printing, the AMS will not automatically read any information until printing is completed.") _L("Note: if a new filament is inserted during printing, the AMS will not automatically read any information until printing is completed.")
); );
m_tip_Insert_material_line2->SetFont(::Label::Body_13); m_tip_Insert_material_line2->SetFont(::Label::Body_13);
m_tip_Insert_material_line2->SetForegroundColour(AMS_SETTING_GREY700); m_tip_Insert_material_line2->SetForegroundColour(AMS_SETTING_GREY700);

View File

@ -828,7 +828,7 @@ AmsHumidityTipPopup::AmsHumidityTipPopup(wxWindow* parent)
m_staticText1->SetFont(::Label::Head_13); m_staticText1->SetFont(::Label::Head_13);
m_staticText2 = new Label(this, _L("Green means that AMS humidity is normal, orange represent humidity is high, red represent humidity is too high.(Hygrometer: lower the better.)")); m_staticText2 = new Label(this, _L("Green means that AMS humidity is normal, orange represents humidity is high, red represents humidity is too high.(Hygrometer: lower the better.)"));
m_staticText2->SetFont(::Label::Body_13); m_staticText2->SetFont(::Label::Body_13);
m_staticText2->SetSize(wxSize(FromDIP(357), -1)); m_staticText2->SetSize(wxSize(FromDIP(357), -1));
m_staticText2->SetMinSize(wxSize(FromDIP(357), -1)); m_staticText2->SetMinSize(wxSize(FromDIP(357), -1));

View File

@ -77,7 +77,7 @@ std::pair<std::string, std::vector<size_t>> SlicingProcessCompletedEvent::format
try { try {
this->rethrow_exception(); this->rethrow_exception();
} catch (const std::bad_alloc &ex) { } catch (const std::bad_alloc &ex) {
wxString errmsg = GUI::from_u8(boost::format(_utf8(L("A error occurred. Maybe memory of system is not enough or it's a bug " wxString errmsg = GUI::from_u8(boost::format(_utf8(L("An error occurred. Maybe memory of system is not enough or it's a bug "
"of the program"))).str()); "of the program"))).str());
error = std::string(errmsg.ToUTF8()) + "\n" + std::string(ex.what()); error = std::string(errmsg.ToUTF8()) + "\n" + std::string(ex.what());
} catch (const HardCrash &ex) { } catch (const HardCrash &ex) {

View File

@ -188,7 +188,7 @@ wxString get_fail_reason(int code)
m_link_Terms_title->Wrap(FromDIP(450)); m_link_Terms_title->Wrap(FromDIP(450));
m_link_Terms_title->SetForegroundColour(wxColour(0x00AE42)); m_link_Terms_title->SetForegroundColour(wxColour(0x00AE42));
m_link_Terms_title->Bind(wxEVT_LEFT_DOWN, [this](auto& e) { m_link_Terms_title->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {
wxString txt = _L("Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab device, please read the termsand conditions.By clicking to agree to use your Bambu Lab device, you agree to abide by the Privacy Policyand Terms of Use(collectively, the \"Terms\"). If you do not comply with or agree to the Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services."); wxString txt = _L("Thank you for purchasing a Bambu Lab device.Before using your Bambu Lab device, please read the termsand conditions.By clicking to agree to use your Bambu Lab device, you agree to abide by the Privacy Policy and Terms of Use(collectively, the \"Terms\"). If you do not comply with or agree to the Bambu Lab Privacy Policy, please do not use Bambu Lab equipment and services.");
ConfirmBeforeSendDialog confirm_dlg(this, wxID_ANY, _L("Terms and Conditions"), ConfirmBeforeSendDialog::ButtonStyle::ONLY_CONFIRM); ConfirmBeforeSendDialog confirm_dlg(this, wxID_ANY, _L("Terms and Conditions"), ConfirmBeforeSendDialog::ButtonStyle::ONLY_CONFIRM);
confirm_dlg.update_text(txt); confirm_dlg.update_text(txt);
confirm_dlg.CenterOnParent(); confirm_dlg.CenterOnParent();

View File

@ -408,7 +408,7 @@ bool CaliPASaveAutoPanel::get_result(std::vector<PACalibResult>& out_result) {
std::unordered_set<std::pair<std::string, std::string>, PACalibResult> set; std::unordered_set<std::pair<std::string, std::string>, PACalibResult> set;
for (auto& result : m_calib_results) { for (auto& result : m_calib_results) {
if (!set.insert({ result.second.name, result.second.filament_id }).second) { if (!set.insert({ result.second.name, result.second.filament_id }).second) {
MessageDialog msg_dlg(nullptr, _L("Only one of the results with the same name will be saved. Are you sure you want to overrides the other results?"), wxEmptyString, wxICON_WARNING | wxYES_NO); MessageDialog msg_dlg(nullptr, _L("Only one of the results with the same name will be saved. Are you sure you want to override the other results?"), wxEmptyString, wxICON_WARNING | wxYES_NO);
if (msg_dlg.ShowModal() != wxID_YES) { if (msg_dlg.ShowModal() != wxID_YES) {
return false; return false;
} }
@ -420,7 +420,7 @@ bool CaliPASaveAutoPanel::get_result(std::vector<PACalibResult>& out_result) {
// Check for duplicate names from history // Check for duplicate names from history
for (auto& result : m_history_results) { for (auto& result : m_history_results) {
if (!set.insert({ result.name, result.filament_id }).second) { if (!set.insert({ result.name, result.filament_id }).second) {
MessageDialog msg_dlg(nullptr, wxString::Format(_L("There is already a historical calibration result with the same name: %s. Only one of the results with the same name is saved. Are you sure you want to overrides the historical result?"), result.name), wxEmptyString, wxICON_WARNING | wxYES_NO); MessageDialog msg_dlg(nullptr, wxString::Format(_L("There is already a historical calibration result with the same name: %s. Only one of the results with the same name is saved. Are you sure you want to override the historical result?"), result.name), wxEmptyString, wxICON_WARNING | wxYES_NO);
if (msg_dlg.ShowModal() != wxID_YES) { if (msg_dlg.ShowModal() != wxID_YES) {
return false; return false;
} }
@ -529,7 +529,7 @@ void CaliPASaveManualPanel::set_pa_cali_method(ManualPaCaliMethod method)
m_complete_text->SetLabel(_L("Please find the best line on your plate")); m_complete_text->SetLabel(_L("Please find the best line on your plate"));
set_save_img(); set_save_img();
} else if (method == ManualPaCaliMethod::PA_PATTERN) { } else if (method == ManualPaCaliMethod::PA_PATTERN) {
m_complete_text->SetLabel(_L("Please find the cornor with perfect degree of extrusion")); m_complete_text->SetLabel(_L("Please find the corner with perfect degree of extrusion"));
if (wxGetApp().app_config->get_language_code() == "zh-cn") { if (wxGetApp().app_config->get_language_code() == "zh-cn") {
m_picture_panel->set_bmp(ScalableBitmap(this, "fd_pattern_manual_result_CN", 350)); m_picture_panel->set_bmp(ScalableBitmap(this, "fd_pattern_manual_result_CN", 350));
} else { } else {
@ -691,7 +691,7 @@ void CaliPASaveP1PPanel::set_pa_cali_method(ManualPaCaliMethod method)
set_save_img(); set_save_img();
} }
else if (method == ManualPaCaliMethod::PA_PATTERN) { else if (method == ManualPaCaliMethod::PA_PATTERN) {
m_complete_text->SetLabel(_L("Please find the cornor with perfect degree of extrusion")); m_complete_text->SetLabel(_L("Please find the corner with perfect degree of extrusion"));
if (wxGetApp().app_config->get_language_code() == "zh-cn") { if (wxGetApp().app_config->get_language_code() == "zh-cn") {
m_picture_panel->set_bmp(ScalableBitmap(this, "fd_pattern_manual_result_CN", 350)); m_picture_panel->set_bmp(ScalableBitmap(this, "fd_pattern_manual_result_CN", 350));
} else { } else {

View File

@ -101,7 +101,7 @@ void ConfigManipulation::check_nozzle_temperature_range(DynamicPrintConfig *conf
config->opt_int("nozzle_temperature", 0) > temperature_range_high) config->opt_int("nozzle_temperature", 0) > temperature_range_high)
{ {
wxString msg_text = _(L("Nozzle may be blocked when the temperature is out of recommended range.\n" wxString msg_text = _(L("Nozzle may be blocked when the temperature is out of recommended range.\n"
"Please make sure whether to use the temperature to print.\n\n")); "Please confirm whether to use the temperature for printing.\n\n"));
msg_text += wxString::Format(_L("Recommended nozzle temperature of this filament type is [%d, %d] degree centigrade"), temperature_range_low, temperature_range_high); msg_text += wxString::Format(_L("Recommended nozzle temperature of this filament type is [%d, %d] degree centigrade"), temperature_range_low, temperature_range_high);
MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK); MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK);
is_msg_dlg_already_exist = true; is_msg_dlg_already_exist = true;
@ -130,7 +130,7 @@ void ConfigManipulation::check_nozzle_temperature_initial_layer_range(DynamicPri
config->opt_int("nozzle_temperature_initial_layer", 0) > temperature_range_high) config->opt_int("nozzle_temperature_initial_layer", 0) > temperature_range_high)
{ {
wxString msg_text = _(L("Nozzle may be blocked when the temperature is out of recommended range.\n" wxString msg_text = _(L("Nozzle may be blocked when the temperature is out of recommended range.\n"
"Please make sure whether to use the temperature to print.\n\n")); "Please confirm whether to use the temperature for printing.\n\n"));
msg_text += wxString::Format(_L("Recommended nozzle temperature of this filament type is [%d, %d] degree centigrade"), temperature_range_low, temperature_range_high); msg_text += wxString::Format(_L("Recommended nozzle temperature of this filament type is [%d, %d] degree centigrade"), temperature_range_low, temperature_range_high);
MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK); MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK);
is_msg_dlg_already_exist = true; is_msg_dlg_already_exist = true;
@ -253,9 +253,9 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con
if (abs(config->option<ConfigOptionFloat>("xy_hole_compensation")->value) > 2) if (abs(config->option<ConfigOptionFloat>("xy_hole_compensation")->value) > 2)
{ {
const wxString msg_text = _(L("This setting is only used for model size tunning with small value in some cases.\n" const wxString msg_text = _(L("This setting is only used for model size tuning with small value in some cases.\n"
"For example, when model size has small error and hard to be assembled.\n" "For example, when the model size has slight errors and is difficult be assembled.\n"
"For large size tuning, please use model scale function.\n\n" "For large size tuning, please use model scaling function.\n\n"
"The value will be reset to 0.")); "The value will be reset to 0."));
MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK); MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK);
DynamicPrintConfig new_conf = *config; DynamicPrintConfig new_conf = *config;
@ -268,9 +268,9 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con
if (abs(config->option<ConfigOptionFloat>("xy_contour_compensation")->value) > 2) if (abs(config->option<ConfigOptionFloat>("xy_contour_compensation")->value) > 2)
{ {
const wxString msg_text = _(L("This setting is only used for model size tunning with small value in some cases.\n" const wxString msg_text = _(L("This setting is only used for model size tuning with small value in some cases.\n"
"For example, when model size has small error and hard to be assembled.\n" "For example, when the model size has slight errors and is difficult be assembled.\n"
"For large size tuning, please use model scale function.\n\n" "For large size tuning, please use model scaling function.\n\n"
"The value will be reset to 0.")); "The value will be reset to 0."));
MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK); MessageDialog dialog(m_msg_dlg_parent, msg_text, "", wxICON_WARNING | wxOK);
DynamicPrintConfig new_conf = *config; DynamicPrintConfig new_conf = *config;
@ -283,7 +283,7 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con
if (config->option<ConfigOptionFloat>("elefant_foot_compensation")->value > 1) if (config->option<ConfigOptionFloat>("elefant_foot_compensation")->value > 1)
{ {
const wxString msg_text = _(L("Too large elefant foot compensation is unreasonable.\n" const wxString msg_text = _(L("Too large elephant foot compensation is unreasonable.\n"
"If really have serious elephant foot effect, please check other settings.\n" "If really have serious elephant foot effect, please check other settings.\n"
"For example, whether bed temperature is too high.\n\n" "For example, whether bed temperature is too high.\n\n"
"The value will be reset to 0.")); "The value will be reset to 0."));
@ -491,8 +491,8 @@ void ConfigManipulation::update_print_fff_config(DynamicPrintConfig* config, con
_(fill_pattern_def->enum_labels[it_pattern - fill_pattern_def->enum_values.begin()])); _(fill_pattern_def->enum_labels[it_pattern - fill_pattern_def->enum_values.begin()]));
if (is_global_config) if (is_global_config)
msg_text += "\n" + _L("Switch to rectilinear pattern?\n" msg_text += "\n" + _L("Switch to rectilinear pattern?\n"
"Yes - switch to rectilinear pattern automaticlly\n" "Yes - switch to rectilinear pattern automatically\n"
"No - reset density to default non 100% value automaticlly") + "\n"; "No - reset density to default non 100% value automatically") + "\n";
MessageDialog dialog(m_msg_dlg_parent, msg_text, "", MessageDialog dialog(m_msg_dlg_parent, msg_text, "",
wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK) ); wxICON_WARNING | (is_global_config ? wxYES | wxNO : wxOK) );
DynamicPrintConfig new_conf = *config; DynamicPrintConfig new_conf = *config;

View File

@ -2037,8 +2037,8 @@ bool CreatePrinterPresetDialog::load_system_and_user_presets_with_curr_model(Pre
} }
} }
if (m_printer_preset_vendor_selected.id.empty() || m_printer_preset_model_selected.id.empty()) { if (m_printer_preset_vendor_selected.id.empty() || m_printer_preset_model_selected.id.empty()) {
BOOST_LOG_TRIVIAL(info) << "selected id is not find"; BOOST_LOG_TRIVIAL(info) << "selected id is not found";
MessageDialog dlg(this, _L("Preset path is not find, please reselect vendor."), wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"), wxYES_NO | wxYES_DEFAULT | wxCENTRE); MessageDialog dlg(this, _L("Preset path is not found, please reselect vendor."), wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"), wxYES_NO | wxYES_DEFAULT | wxCENTRE);
dlg.ShowModal(); dlg.ShowModal();
return false; return false;
} }
@ -2058,8 +2058,8 @@ bool CreatePrinterPresetDialog::load_system_and_user_presets_with_curr_model(Pre
} }
if (preset_path.empty()) { if (preset_path.empty()) {
BOOST_LOG_TRIVIAL(info) << "Preset path is not find"; BOOST_LOG_TRIVIAL(info) << "Preset path is not found";
MessageDialog dlg(this, _L("Preset path is not find, please reselect vendor."), wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"), MessageDialog dlg(this, _L("Preset path is not found, please reselect vendor."), wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"),
wxYES_NO | wxYES_DEFAULT | wxCENTRE); wxYES_NO | wxYES_DEFAULT | wxCENTRE);
dlg.ShowModal(); dlg.ShowModal();
return false; return false;
@ -2122,8 +2122,8 @@ bool CreatePrinterPresetDialog::load_system_and_user_presets_with_curr_model(Pre
preset_path = (boost::filesystem::path(Slic3r::resources_dir()) / PRESET_PROFILES_TEMOLATE_DIR).string(); preset_path = (boost::filesystem::path(Slic3r::resources_dir()) / PRESET_PROFILES_TEMOLATE_DIR).string();
} }
if (preset_path.empty()) { if (preset_path.empty()) {
BOOST_LOG_TRIVIAL(info) << "Preset path is not find"; BOOST_LOG_TRIVIAL(info) << "Preset path is not found";
MessageDialog dlg(this, _L("Preset path is not find, please reselect vendor."), wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"), MessageDialog dlg(this, _L("Preset path is not found, please reselect vendor."), wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"),
wxYES_NO | wxYES_DEFAULT | wxCENTRE); wxYES_NO | wxYES_DEFAULT | wxCENTRE);
dlg.ShowModal(); dlg.ShowModal();
return false; return false;
@ -2834,7 +2834,7 @@ bool CreatePrinterPresetDialog::data_init()
if (iterator != vendors.end()) { if (iterator != vendors.end()) {
m_printer_preset_vendor_selected = iterator->second; m_printer_preset_vendor_selected = iterator->second;
} else { } else {
MessageDialog dlg(this, _L("Vendor is not find, please reselect."), wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"), wxYES_NO | wxYES_DEFAULT | wxCENTRE); MessageDialog dlg(this, _L("Vendor is not found, please reselect."), wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Info"), wxYES_NO | wxYES_DEFAULT | wxCENTRE);
dlg.ShowModal(); dlg.ShowModal();
return; return;
} }
@ -3204,7 +3204,7 @@ CreatePresetSuccessfulDialog::CreatePresetSuccessfulDialog(wxWindow *parent, con
break; break;
case FILAMENT: case FILAMENT:
success_text = new wxStaticText(this, wxID_ANY, _L("Filament Created")); success_text = new wxStaticText(this, wxID_ANY, _L("Filament Created"));
next_step_text = new wxStaticText(this, wxID_ANY, _L("Please go to filament setting to edit your presets if you need.\nPlease note that nozzle temperature, hot bed temperature, and maximum volumetric speed have a significant impact on printing quality. Please set them carefully.")); next_step_text = new wxStaticText(this, wxID_ANY, _L("Please go to filament setting to edit your presets if you need.\nPlease note that nozzle temperature, hot bed temperature, and maximum volumetric speed has a significant impact on printing quality. Please set them carefully."));
break; break;
} }
success_text->SetFont(Label::Head_18); success_text->SetFont(Label::Head_18);
@ -3532,7 +3532,7 @@ wxBoxSizer *ExportConfigsDialog::create_export_config_item(wxWindow *parent)
radioBoxSizer->Add(create_radio_item(m_exprot_type.preset_bundle, parent, wxEmptyString, m_export_type_btns), 0, wxEXPAND | wxALL, 0); radioBoxSizer->Add(create_radio_item(m_exprot_type.preset_bundle, parent, wxEmptyString, m_export_type_btns), 0, wxEXPAND | wxALL, 0);
radioBoxSizer->Add(0, 0, 0, wxTOP, FromDIP(6)); radioBoxSizer->Add(0, 0, 0, wxTOP, FromDIP(6));
wxStaticText *static_export_printer_preset_bundle_text = new wxStaticText(parent, wxID_ANY, _L("Printer and all the filament&process presets that belongs to the printer. \nCan be shared with others."), wxDefaultPosition, wxDefaultSize); wxStaticText *static_export_printer_preset_bundle_text = new wxStaticText(parent, wxID_ANY, _L("Printer and all the filament&process presets that belong to the printer. \nCan be shared with others."), wxDefaultPosition, wxDefaultSize);
static_export_printer_preset_bundle_text->SetFont(Label::Body_12); static_export_printer_preset_bundle_text->SetFont(Label::Body_12);
static_export_printer_preset_bundle_text->SetForegroundColour(wxColour("#6B6B6B")); static_export_printer_preset_bundle_text->SetForegroundColour(wxColour("#6B6B6B"));
radioBoxSizer->Add(static_export_printer_preset_bundle_text, 0, wxEXPAND | wxLEFT, FromDIP(22)); radioBoxSizer->Add(static_export_printer_preset_bundle_text, 0, wxEXPAND | wxLEFT, FromDIP(22));

View File

@ -9132,7 +9132,7 @@ void GLCanvas3D::_set_warning_notification(EWarning warning, bool state)
case EWarning::ToolpathOutside: text = _u8L("A G-code path goes beyond the boundary of plate."); error = ErrorType::SLICING_ERROR; break; case EWarning::ToolpathOutside: text = _u8L("A G-code path goes beyond the boundary of plate."); error = ErrorType::SLICING_ERROR; break;
// BBS: remove _u8L() for SLA // BBS: remove _u8L() for SLA
case EWarning::SlaSupportsOutside: text = ("SLA supports outside the print area were detected."); error = ErrorType::PLATER_ERROR; break; case EWarning::SlaSupportsOutside: text = ("SLA supports outside the print area were detected."); error = ErrorType::PLATER_ERROR; break;
case EWarning::SomethingNotShown: text = _u8L("Only the object being edit is visible."); break; case EWarning::SomethingNotShown: text = _u8L("Only the object being edited is visible."); break;
case EWarning::ObjectClashed: case EWarning::ObjectClashed:
text = _u8L("An object is laid over the boundary of plate or exceeds the height limit.\n" text = _u8L("An object is laid over the boundary of plate or exceeds the height limit.\n"
"Please solve the problem by moving it totally on or off the plate, and confirming that the height is within the build volume."); "Please solve the problem by moving it totally on or off the plate, and confirming that the height is within the build volume.");

View File

@ -2178,7 +2178,7 @@ void GUI_App::init_app_config()
if (!error.empty()) { if (!error.empty()) {
// Error while parsing config file. We'll customize the error message and rethrow to be displayed. // Error while parsing config file. We'll customize the error message and rethrow to be displayed.
throw Slic3r::RuntimeError( throw Slic3r::RuntimeError(
_u8L("BambuStudio configuration file may be corrupted and is not abled to be parsed." _u8L("BambuStudio configuration file may be corrupted and is not able to be parsed."
"Please delete the file and try again.") + "Please delete the file and try again.") +
"\n\n" + app_config->config_path() + "\n\n" + error); "\n\n" + app_config->config_path() + "\n\n" + error);
} }
@ -3802,7 +3802,7 @@ void GUI_App::request_user_logout()
/* delete old user settings */ /* delete old user settings */
bool transfer_preset_changes = false; bool transfer_preset_changes = false;
wxString header = _L("Some presets are modified.") + "\n" + wxString header = _L("Some presets are modified.") + "\n" +
_L("You can keep the modifield presets to the new project, discard or save changes as new presets."); _L("You can keep the modified presets for the new project, discard or save changes as new presets.");
using ab = UnsavedChangesDialog::ActionButtons; using ab = UnsavedChangesDialog::ActionButtons;
wxGetApp().check_and_keep_current_preset_changes(_L("User logged out"), header, ab::KEEP | ab::SAVE, &transfer_preset_changes); wxGetApp().check_and_keep_current_preset_changes(_L("User logged out"), header, ab::KEEP | ab::SAVE, &transfer_preset_changes);

View File

@ -1165,10 +1165,10 @@ void MenuFactory::create_bbl_part_menu()
if (!split_menu) if (!split_menu)
return; return;
append_menu_item(split_menu, wxID_ANY, _L("To objects"), _L("Split the selected object into mutiple objects"), append_menu_item(split_menu, wxID_ANY, _L("To objects"), _L("Split the selected object into multiple objects"),
[](wxCommandEvent&) { plater()->split_object(); }, "split_objects", menu, [](wxCommandEvent&) { plater()->split_object(); }, "split_objects", menu,
[]() { return plater()->can_split(true); }, m_parent); []() { return plater()->can_split(true); }, m_parent);
append_menu_item(split_menu, wxID_ANY, _L("To parts"), _L("Split the selected object into mutiple parts"), append_menu_item(split_menu, wxID_ANY, _L("To parts"), _L("Split the selected object into multiple parts"),
[](wxCommandEvent&) { plater()->split_volume(); }, "split_parts", menu, [](wxCommandEvent&) { plater()->split_volume(); }, "split_parts", menu,
[]() { return plater()->can_split(false); }, m_parent); []() { return plater()->can_split(false); }, m_parent);

View File

@ -69,7 +69,7 @@ int GUI_Run(GUI_InitParams &params)
wxMessageBox(boost::nowide::widen(ex.what()), _L("Bambu Studio GUI initialization failed"), wxICON_STOP); wxMessageBox(boost::nowide::widen(ex.what()), _L("Bambu Studio GUI initialization failed"), wxICON_STOP);
} catch (const std::exception &ex) { } catch (const std::exception &ex) {
BOOST_LOG_TRIVIAL(error) << ex.what() << std::endl; BOOST_LOG_TRIVIAL(error) << ex.what() << std::endl;
wxMessageBox(format_wxstr(_L("Fatal error, exception catched: %1%"), ex.what()), _L("Bambu Studio GUI initialization failed"), wxICON_STOP); wxMessageBox(format_wxstr(_L("Fatal error, exception caught: %1%"), ex.what()), _L("Bambu Studio GUI initialization failed"), wxICON_STOP);
} }
// error // error
return 1; return 1;

View File

@ -2488,7 +2488,7 @@ bool ObjectList::del_from_cut_object(bool is_cut_connector, bool is_model_part/*
(_L("This action will break a cut correspondence.\n" (_L("This action will break a cut correspondence.\n"
"After that model consistency can't be guaranteed .\n" "After that model consistency can't be guaranteed .\n"
"\n" "\n"
"To manipulate with solid parts or negative volumes you have to invalidate cut infornation first.") + msg_end ), "To manipulate solid parts or negative volumes you have to invalidate cut information first.") + msg_end ),
false, buttons_style | wxCANCEL_DEFAULT | wxICON_WARNING); false, buttons_style | wxCANCEL_DEFAULT | wxICON_WARNING);
dialog.SetButtonLabel(wxID_YES, _L("Invalidate cut info")); dialog.SetButtonLabel(wxID_YES, _L("Invalidate cut info"));
@ -2597,7 +2597,7 @@ void ObjectList::split()
const ConfigOptionStrings* filament_colors = config.option<ConfigOptionStrings>("filament_colour", false); const ConfigOptionStrings* filament_colors = config.option<ConfigOptionStrings>("filament_colour", false);
const auto filament_cnt = (filament_colors == nullptr) ? size_t(1) : filament_colors->size(); const auto filament_cnt = (filament_colors == nullptr) ? size_t(1) : filament_colors->size();
if (!volume->is_splittable()) { if (!volume->is_splittable()) {
wxMessageBox(_(L("The target object contains only one part and can not be splited."))); wxMessageBox(_(L("The target object contains only one part and can not be split.")));
return; return;
} }
@ -4893,11 +4893,11 @@ bool ObjectList::check_last_selection(wxString& msg_str)
if (m_selection_mode == smInstance) { if (m_selection_mode == smInstance) {
msg_str = wxString::Format(_(L("Selection conflicts")) + "\n\n" + msg_str = wxString::Format(_(L("Selection conflicts")) + "\n\n" +
_(L("If first selected item is an object, the second one should also be object.")) + "\n"); _(L("If the first selected item is an object, the second one should also be an object.")) + "\n");
} }
else { else {
msg_str = wxString::Format(_(L("Selection conflicts")) + "\n\n" + msg_str = wxString::Format(_(L("Selection conflicts")) + "\n\n" +
_(L("If first selected item is a part, the second one should be part in the same object.")) + "\n"); _(L("If the first selected item is a part, the second one should be part of the same object.")) + "\n");
} }
// Unselect last selected item, if selection is without SHIFT // Unselect last selected item, if selection is without SHIFT
@ -5459,7 +5459,7 @@ void ObjectList::fix_through_netfabb()
msg += "\n\n"; msg += "\n\n";
} }
if (!failed_models.empty()) { if (!failed_models.empty()) {
msg += _L_PLURAL("Failed to repair folowing model object", "Failed to repair folowing model objects", failed_models.size()) + ":\n"; msg += _L_PLURAL("Failed to repair the following model object", "Failed to repair the following model object", failed_models.size()) + ":\n";
for (auto& model : failed_models) for (auto& model : failed_models)
msg += bullet_suf + from_u8(model.first) + ": " + _(model.second); msg += bullet_suf + from_u8(model.first) + ": " + _(model.second);
} }

View File

@ -945,7 +945,7 @@ void GLGizmoAdvancedCut::perform_cut(const Selection& selection)
if (its_num_open_edges(new_objects[i]->volumes[j]->mesh().its) > 0) { if (its_num_open_edges(new_objects[i]->volumes[j]->mesh().its) > 0) {
if (!is_showed_dialog) { if (!is_showed_dialog) {
is_showed_dialog = true; is_showed_dialog = true;
MessageDialog dlg(nullptr, _L("non-mainifold edges be caused by cut tool, do you want to fix it now?"), "", wxYES | wxCANCEL); MessageDialog dlg(nullptr, _L("non-manifold edges be caused by cut tool, do you want to fix it now?"), "", wxYES | wxCANCEL);
int ret = dlg.ShowModal(); int ret = dlg.ShowModal();
if (ret == wxID_YES) { if (ret == wxID_YES) {
user_fix_model = true; user_fix_model = true;
@ -2307,7 +2307,7 @@ void GLGizmoAdvancedCut::render_input_window_warning() const
m_imgui->text(out); m_imgui->text(out);
} }
if (!m_keep_upper && !m_keep_lower) if (!m_keep_upper && !m_keep_lower)
m_imgui->text(/*wxString(ImGui::WarningMarkerSmall)*/_L("Warning") + ": " + _L("Invalid state. \nNo one part is selected for keep after cut")); m_imgui->text(/*wxString(ImGui::WarningMarkerSmall)*/_L("Warning") + ": " + _L("Invalid state. \nNo one part is selected to keep after cut"));
} }
bool GLGizmoAdvancedCut::render_reset_button(const std::string &label_id, const std::string &tooltip) const bool GLGizmoAdvancedCut::render_reset_button(const std::string &label_id, const std::string &tooltip) const

View File

@ -366,7 +366,7 @@ void GLGizmoSimplify::on_render_input_window(float x, float y, float bottom_limi
apply_simplify(); apply_simplify();
} }
else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_worker_running) { else if (ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenDisabled) && is_worker_running) {
ImGui::SetTooltip("%s", _u8L("Can't apply when proccess preview.").c_str()); ImGui::SetTooltip("%s", _u8L("Can't apply when process preview.").c_str());
} }
m_imgui->pop_confirm_button_style(); m_imgui->pop_confirm_button_style();
m_imgui->disabled_end(); // state !settings m_imgui->disabled_end(); // state !settings

View File

@ -150,7 +150,7 @@ bool GLGizmoText::on_init()
reset_text_info(); reset_text_info();
m_desc["rotate_text_caption"] = _L("Shift + Mouse move up or dowm"); m_desc["rotate_text_caption"] = _L("Shift + Mouse move up or down");
m_desc["rotate_text"] = _L("Rotate text"); m_desc["rotate_text"] = _L("Rotate text");
m_grabbers.push_back(Grabber()); m_grabbers.push_back(Grabber());

View File

@ -237,7 +237,7 @@ void ArrangeJob::prepare_all() {
if (m_selected.empty()) { if (m_selected.empty()) {
if (!selected_is_locked) { if (!selected_is_locked) {
m_plater->get_notification_manager()->push_notification(NotificationType::BBLPlateInfo, m_plater->get_notification_manager()->push_notification(NotificationType::BBLPlateInfo,
NotificationManager::NotificationLevel::WarningNotificationLevel, into_u8(_L("No arrangable objects are selected."))); NotificationManager::NotificationLevel::WarningNotificationLevel, into_u8(_L("No arrangeable objects are selected.")));
} }
else { else {
m_plater->get_notification_manager()->push_notification(NotificationType::BBLPlateInfo, m_plater->get_notification_manager()->push_notification(NotificationType::BBLPlateInfo,

View File

@ -122,7 +122,7 @@ wxString PrintJob::get_http_error_msg(unsigned int status, std::string body)
return _L("Service Unavailable"); return _L("Service Unavailable");
} }
else { else {
wxString unkown_text = _L("Unkown Error."); wxString unkown_text = _L("Unknown Error.");
unkown_text += wxString::Format("status=%u, body=%s", status, body); unkown_text += wxString::Format("status=%u, body=%s", status, body);
BOOST_LOG_TRIVIAL(error) << "http_error: status=" << status << ", code=" << code << ", error=" << error; BOOST_LOG_TRIVIAL(error) << "http_error: status=" << status << ", code=" << code << ", error=" << error;
return unkown_text; return unkown_text;

View File

@ -87,7 +87,7 @@ wxString SendJob::get_http_error_msg(unsigned int status, std::string body)
return _L("Service Unavailable"); return _L("Service Unavailable");
} }
else { else {
wxString unkown_text = _L("Unkown Error."); wxString unkown_text = _L("Unknown Error.");
unkown_text += wxString::Format("status=%u, body=%s", status, body); unkown_text += wxString::Format("status=%u, body=%s", status, body);
return unkown_text; return unkown_text;
} }

View File

@ -518,7 +518,7 @@ void MediaFilePanel::doAction(size_t index, int action)
return; return;
if (result != 0) { if (result != 0) {
MessageDialog(this, MessageDialog(this,
_L("Failed to fetching model infomations from printer."), _L("Failed to fetch model information from printer."),
_L("Error"), wxOK).ShowModal(); _L("Error"), wxOK).ShowModal();
return; return;
} }
@ -530,7 +530,7 @@ void MediaFilePanel::doAction(size_t index, int action)
if (!Slic3r::load_gcode_3mf_from_stream(is, &config, &model, &plate_data_list, &file_version) if (!Slic3r::load_gcode_3mf_from_stream(is, &config, &model, &plate_data_list, &file_version)
|| plate_data_list.empty()) { || plate_data_list.empty()) {
MessageDialog(this, MessageDialog(this,
_L("Failed to parse model infomations."), _L("Failed to parse model information."),
_L("Error"), wxOK).ShowModal(); _L("Error"), wxOK).ShowModal();
return; return;
} }
@ -549,7 +549,7 @@ void MediaFilePanel::doAction(size_t index, int action)
wxPostEvent(Slic3r::GUI::wxGetApp().plater(), SimpleEvent(EVT_PRINT_FROM_SDCARD_VIEW)); wxPostEvent(Slic3r::GUI::wxGetApp().plater(), SimpleEvent(EVT_PRINT_FROM_SDCARD_VIEW));
} }
else { else {
MessageDialog dlg(this, _L("The .gcode.3mf file contains no G-code data.Please slice it whthBambu Studio and export a new .gcode.3mf file."), wxEmptyString, wxICON_WARNING | wxOK); MessageDialog dlg(this, _L("The .gcode.3mf file contains no G-code data.Please slice it whth Bambu Studio and export a new .gcode.3mf file."), wxEmptyString, wxICON_WARNING | wxOK);
auto res = dlg.ShowModal(); auto res = dlg.ShowModal();
} }

View File

@ -1252,7 +1252,7 @@ void NotificationManager::UpdatedItemsInfoNotification::add_type(InfoItemType ty
if ((*it).second == 0) if ((*it).second == 0)
continue; continue;
switch ((*it).first) { switch ((*it).first) {
case InfoItemType::CustomSupports: text += format(_L_PLURAL("%1$d Object has custom supports.", "%1$d Objects have custom supports.", (*it).second), (*it).second) + "\n"; break; case InfoItemType::CustomSupports: text += format(_L_PLURAL("%1$d Object has custom support.", "%1$d Objects have custom support.", (*it).second), (*it).second) + "\n"; break;
// BBS // BBS
//case InfoItemType::CustomSeam: text += format(("%1$d Object has custom seam.", "%1$d Objects have custom seam.", (*it).second), (*it).second) + "\n"; break; //case InfoItemType::CustomSeam: text += format(("%1$d Object has custom seam.", "%1$d Objects have custom seam.", (*it).second), (*it).second) + "\n"; break;
case InfoItemType::MmuSegmentation: text += format(_L_PLURAL("%1$d Object has color painting.", "%1$d Objects have color painting.",(*it).second), (*it).second) + "\n"; break; case InfoItemType::MmuSegmentation: text += format(_L_PLURAL("%1$d Object has color painting.", "%1$d Objects have color painting.",(*it).second), (*it).second) + "\n"; break;

View File

@ -8416,7 +8416,7 @@ int Plater::new_project(bool skip_confirm, bool silent, const wxString &project_
auto check = [&transfer_preset_changes](bool yes_or_no) { auto check = [&transfer_preset_changes](bool yes_or_no) {
wxString header = _L("Some presets are modified.") + "\n" + wxString header = _L("Some presets are modified.") + "\n" +
(yes_or_no ? _L("You can keep the modified presets to the new project or discard them") : (yes_or_no ? _L("You can keep the modified presets to the new project or discard them") :
_L("You can keep the modifield presets to the new project, discard or save changes as new presets.")); _L("You can keep the modified presets for the new project, discard or save changes as new presets."));
using ab = UnsavedChangesDialog::ActionButtons; using ab = UnsavedChangesDialog::ActionButtons;
int act_buttons = ab::KEEP | ab::REMEMBER_CHOISE; int act_buttons = ab::KEEP | ab::REMEMBER_CHOISE;
if (!yes_or_no) if (!yes_or_no)

View File

@ -193,7 +193,7 @@ wxBoxSizer *PreferencesDialog::create_item_language_combobox(
{ {
//check if the project has changed //check if the project has changed
if (wxGetApp().plater()->is_project_dirty()) { if (wxGetApp().plater()->is_project_dirty()) {
auto result = MessageDialog(static_cast<wxWindow*>(this), _L("The current project has unsaved changes, save it before continue?"), auto result = MessageDialog(static_cast<wxWindow*>(this), _L("The current project has unsaved changes, save it before continuing?"),
wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Save"), wxYES_NO | wxCANCEL | wxYES_DEFAULT | wxCENTRE).ShowModal(); wxString(SLIC3R_APP_FULL_NAME) + " - " + _L("Save"), wxYES_NO | wxCANCEL | wxYES_DEFAULT | wxCENTRE).ShowModal();
if (result == wxID_YES) { if (result == wxID_YES) {
@ -1011,7 +1011,7 @@ wxWindow* PreferencesDialog::create_general_page()
_L("Studio will remember build plate selected last time for certain printer model."), 50, _L("Studio will remember build plate selected last time for certain printer model."), 50,
"user_bed_type"); "user_bed_type");
//auto item_hints = create_item_checkbox(_L("Show \"Tip of the day\" notification after start"), page, _L("If enabled, useful hints are displayed at startup."), 50, "show_hints"); //auto item_hints = create_item_checkbox(_L("Show \"Tip of the day\" notification after start"), page, _L("If enabled, useful hints are displayed at startup."), 50, "show_hints");
auto item_calc_mode = create_item_checkbox(_L("Flushing volumes: Auto-calculate everytime the color changed."), page, _L("If enabled, auto-calculate everytime the color changed."), 50, "auto_calculate"); auto item_calc_mode = create_item_checkbox(_L("Flushing volumes: Auto-calculate every time when the color is changed."), page, _L("If enabled, auto-calculate every time when the color is changed."), 50, "auto_calculate");
auto title_presets = create_item_title(_L("Presets"), page, _L("Presets")); auto title_presets = create_item_title(_L("Presets"), page, _L("Presets"));
auto item_user_sync = create_item_checkbox(_L("Auto sync user presets(Printer/Filament/Process)"), page, _L("User Sync"), 50, "sync_user_preset"); auto item_user_sync = create_item_checkbox(_L("Auto sync user presets(Printer/Filament/Process)"), page, _L("User Sync"), 50, "sync_user_preset");
auto item_system_sync = create_item_checkbox(_L("Update built-in Presets automatically."), page, _L("System Sync"), 50, "sync_system_preset"); auto item_system_sync = create_item_checkbox(_L("Update built-in Presets automatically."), page, _L("System Sync"), 50, "sync_system_preset");

View File

@ -47,7 +47,7 @@ static wxBitmap default_thumbnail;
static std::map<int, std::string> error_messages = { static std::map<int, std::string> error_messages = {
{PrinterFileSystem::ERROR_PIPE, L("Connection lost. Please retry.")}, {PrinterFileSystem::ERROR_PIPE, L("Connection lost. Please retry.")},
{PrinterFileSystem::ERROR_RES_BUSY, L("The device cannot handle more conversations. Please retry later.")}, {PrinterFileSystem::ERROR_RES_BUSY, L("The device cannot handle more conversations. Please retry later.")},
{PrinterFileSystem::FILE_NO_EXIST, L("File not exists.")}, {PrinterFileSystem::FILE_NO_EXIST, L("File does not exist.")},
{PrinterFileSystem::FILE_CHECK_ERR, L("File checksum error. Please retry.")}, {PrinterFileSystem::FILE_CHECK_ERR, L("File checksum error. Please retry.")},
{PrinterFileSystem::FILE_TYPE_ERR, L("Not supported on the current printer version.")}, {PrinterFileSystem::FILE_TYPE_ERR, L("Not supported on the current printer version.")},
{PrinterFileSystem::STORAGE_UNAVAILABLE, L("Storage unavailable, insert SD card.")} {PrinterFileSystem::STORAGE_UNAVAILABLE, L("Storage unavailable, insert SD card.")}

View File

@ -24,7 +24,7 @@ static wxString PUBLISH_STEP_STRING[STEP_COUNT] = {
_L("Jump to model publish web page") _L("Jump to model publish web page")
}; };
static wxString NOTE_STRING = _L("Note: The preparation may takes several minutes. Please be patiant."); static wxString NOTE_STRING = _L("Note: The preparation may take several minutes. Please be patient.");
PublishDialog::PublishDialog(Plater *plater) PublishDialog::PublishDialog(Plater *plater)
: DPIDialog(static_cast<wxWindow *>(wxGetApp().mainframe), wxID_ANY, _L("Publish"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX) : DPIDialog(static_cast<wxWindow *>(wxGetApp().mainframe), wxID_ANY, _L("Publish"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)

View File

@ -4621,7 +4621,7 @@ wxBoxSizer *ScoreDialog::get_button_sizer()
++it; ++it;
break; break;
case BAMBU_NETWORK_ERR_PARSE_CONFIG_FAILED: case BAMBU_NETWORK_ERR_PARSE_CONFIG_FAILED:
error_info += need_upload.second + _L(" upload config prase failed\n").ToUTF8().data() + "\n"; error_info += need_upload.second + _L(" upload config parse failed\n").ToUTF8().data() + "\n";
m_upload_status_code = StatusCode::UPLOAD_IMG_FAILED; m_upload_status_code = StatusCode::UPLOAD_IMG_FAILED;
++it; ++it;
break; break;

View File

@ -797,7 +797,7 @@ bool GuideFrame::apply_config(AppConfig *app_config, PresetBundle *preset_bundle
} }
check_unsaved_preset_changes = (enabled_vendors != old_enabled_vendors) || (enabled_filaments != old_enabled_filaments); check_unsaved_preset_changes = (enabled_vendors != old_enabled_vendors) || (enabled_filaments != old_enabled_filaments);
wxString header = _L("The configuration package is changed in previous Config Guide"); wxString header = _L("The configuration package is changed to the previous Config Guide");
wxString caption = _L("Configuration package changed"); wxString caption = _L("Configuration package changed");
int act_btns = UnsavedChangesDialog::ActionButtons::KEEP|UnsavedChangesDialog::ActionButtons::SAVE; int act_btns = UnsavedChangesDialog::ActionButtons::KEEP|UnsavedChangesDialog::ActionButtons::SAVE;

View File

@ -2829,7 +2829,7 @@ AMSControl::AMSControl(wxWindow *parent, wxWindowID id, const wxPoint &pos, cons
wxBoxSizer *sizer_err_calibration_v = new wxBoxSizer(wxVERTICAL); wxBoxSizer *sizer_err_calibration_v = new wxBoxSizer(wxVERTICAL);
m_hyperlink = new wxHyperlinkCtrl(m_calibration_err_panel, wxID_ANY, wxEmptyString, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE); m_hyperlink = new wxHyperlinkCtrl(m_calibration_err_panel, wxID_ANY, wxEmptyString, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE);
m_hyperlink->SetVisitedColour(wxColour(31, 142, 234)); m_hyperlink->SetVisitedColour(wxColour(31, 142, 234));
auto m_tip_calibration_err = new wxStaticText(m_calibration_err_panel, wxID_ANY, _L("A problem occured during calibration. Click to view the solution."), wxDefaultPosition, auto m_tip_calibration_err = new wxStaticText(m_calibration_err_panel, wxID_ANY, _L("A problem occurred during calibration. Click to view the solution."), wxDefaultPosition,
wxDefaultSize, 0); wxDefaultSize, 0);
m_tip_calibration_err->SetFont(::Label::Body_14); m_tip_calibration_err->SetFont(::Label::Body_14);
m_tip_calibration_err->SetForegroundColour(AMS_CONTROL_GRAY700); m_tip_calibration_err->SetForegroundColour(AMS_CONTROL_GRAY700);
@ -3558,7 +3558,7 @@ void AMSControl::ShowFilamentTip(bool hasams)
m_simplebook_right->SetSelection(0); m_simplebook_right->SetSelection(0);
if (hasams) { if (hasams) {
m_tip_right_top->Show(); m_tip_right_top->Show();
m_tip_load_info->SetLabelText(_L("Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filiament.")); m_tip_load_info->SetLabelText(_L("Choose an AMS slot then press \"Load\" or \"Unload\" button to automatically load or unload filaments."));
} else { } else {
// m_tip_load_info->SetLabelText(_L("Before loading, please make sure the filament is pushed into toolhead.")); // m_tip_load_info->SetLabelText(_L("Before loading, please make sure the filament is pushed into toolhead."));
m_tip_right_top->Hide(); m_tip_right_top->Hide();