mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-07-31 13:52:04 +08:00
fix un-localizable strings (step 2)
This commit is contained in:
parent
467b1feaa7
commit
532ecec73a
@ -1728,7 +1728,7 @@ namespace Slic3r {
|
||||
{
|
||||
// std::string msg = _(L("The selected 3mf file has been saved with a newer version of " + std::string(SLIC3R_APP_NAME) + " and is not compatible."));
|
||||
// throw version_error(msg.c_str());
|
||||
const std::string msg = (boost::format(_(L("The selected 3mf file has been saved with a newer version of %1% and is not compatible."))) % std::string(SLIC3R_APP_NAME)).str();
|
||||
const std::string msg = (boost::format("The selected 3mf file has been saved with a newer version of %1% and is not compatible.") % std::string(SLIC3R_APP_NAME)).str();
|
||||
throw version_error(msg);
|
||||
}
|
||||
}
|
||||
|
@ -977,7 +977,7 @@ bool extract_model_from_archive(mz_zip_archive& archive, const mz_zip_archive_fi
|
||||
{
|
||||
// std::string msg = _(L("The selected amf file has been saved with a newer version of " + std::string(SLIC3R_APP_NAME) + " and is not compatible."));
|
||||
// throw Slic3r::FileIOError(msg.c_str());
|
||||
const std::string msg = (boost::format(_(L("The selected amf file has been saved with a newer version of %1% and is not compatible."))) % std::string(SLIC3R_APP_NAME)).str();
|
||||
const std::string msg = (boost::format("The selected amf file has been saved with a newer version of %1% and is not compatible.") % std::string(SLIC3R_APP_NAME)).str();
|
||||
throw Slic3r::FileIOError(msg);
|
||||
}
|
||||
|
||||
|
@ -830,8 +830,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Set this to a non-zero value to set a manual extrusion width for external perimeters. "
|
||||
"If left zero, default extrusion width will be used if set, otherwise 1.05 x nozzle diameter will be used. "
|
||||
"If expressed as percentage (for example 112.5%), it will be computed over nozzle diameter.") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
"If expressed as percentage (for example 112.5%), it will be computed over nozzle diameter."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -846,8 +846,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->full_label = L("External perimeters spacing");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Like the External perimeters width, but this value is the distance between the edge and the 'frontier' to the next perimeter."
|
||||
"\nSetting the spacing will deactivate the width setting, and vice versa.") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
"\nSetting the spacing will deactivate the width setting, and vice versa."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -1166,8 +1166,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->tooltip = L("Set this to a non-zero value to allow a manual extrusion width. "
|
||||
"If left to zero, Slic3r derives extrusion widths from the nozzle diameter "
|
||||
"(see the tooltips for perimeter extrusion width, infill extrusion width etc). "
|
||||
"If expressed as percentage (for example: 105%), it will be computed over nozzle diameter.") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
"If expressed as percentage (for example: 105%), it will be computed over nozzle diameter."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -1180,8 +1180,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def = this->add("extrusion_spacing", coFloatOrPercent);
|
||||
def->label = L("Default extrusion spacing");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Like Default extrusion width but spacing is the distance between two lines (as they overlap a bit, it's not the same).") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->tooltip = L("Like Default extrusion width but spacing is the distance between two lines (as they overlap a bit, it's not the same)."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -1753,8 +1753,8 @@ void PrintConfigDef::init_fff_params()
|
||||
"You can use this to force fatter extrudates for better adhesion. If expressed "
|
||||
"as percentage (for example 140%) it will be computed over the nozzle diameter "
|
||||
"of the nozzle used for the type of extrusion. "
|
||||
"If set to zero, it will use the default extrusion width.") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
"If set to zero, it will use the default extrusion width."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -1768,8 +1768,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->label = L("First layer");
|
||||
def->full_label = L("First layer spacing");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Like First layer width but spacing is the distance between two lines (as they overlap a bit, it's not the same).") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->tooltip = L("Like First layer width but spacing is the distance between two lines (as they overlap a bit, it's not the same)."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -2149,8 +2149,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->tooltip = L("Set this to a non-zero value to set a manual extrusion width for infill. "
|
||||
"If left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. "
|
||||
"You may want to use fatter extrudates to speed up the infill and make your parts stronger. "
|
||||
"If expressed as percentage (for example 110%) it will be computed over nozzle diameter.") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
"If expressed as percentage (for example 110%) it will be computed over nozzle diameter."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -2164,8 +2164,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->label = L("Infill");
|
||||
def->full_label = L("Infill spacing");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Like First layer width but spacing is the distance between two lines (as they overlap a bit, it's not the same).") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->tooltip = L("Like First layer width but spacing is the distance between two lines (as they overlap a bit, it's not the same)."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -2891,8 +2891,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->tooltip = L("Set this to a non-zero value to set a manual extrusion width for perimeters. "
|
||||
"You may want to use thinner extrudates to get more accurate surfaces. "
|
||||
"If left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. "
|
||||
"If expressed as percentage (for example 105%) it will be computed over nozzle diameter.") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
"If expressed as percentage (for example 105%) it will be computed over nozzle diameter."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->aliases = { "perimeters_extrusion_width" };
|
||||
def->min = 0;
|
||||
@ -2906,8 +2906,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->label = L("Perimeters");
|
||||
def->full_label = L("Perimeter spacing");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Like Perimeter width but spacing is the distance between two perimeter lines (as they overlap a bit, it's not the same).") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->tooltip = L("Like Perimeter width but spacing is the distance between two perimeter lines (as they overlap a bit, it's not the same)."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using the perimeter 'Overlap' percentages and default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->aliases = { "perimeters_extrusion_width" };
|
||||
def->min = 0;
|
||||
@ -3423,8 +3423,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Set this to a non-zero value to set a manual extrusion width for infill for solid surfaces. "
|
||||
"If left zero, default extrusion width will be used if set, otherwise 1.125 x nozzle diameter will be used. "
|
||||
"If expressed as percentage (for example 110%) it will be computed over nozzle diameter.") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
"If expressed as percentage (for example 110%) it will be computed over nozzle diameter."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -3438,8 +3438,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->label = L("Solid spacing");
|
||||
def->full_label = L("Solid infill spacing");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Like Solid infill width but spacing is the distance between two lines (as they overlap a bit, it's not the same).") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->tooltip = L("Like Solid infill width but spacing is the distance between two lines (as they overlap a bit, it's not the same)."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -4006,8 +4006,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def->tooltip = L("Set this to a non-zero value to set a manual extrusion width for infill for top surfaces. "
|
||||
"You may want to use thinner extrudates to fill all narrow regions and get a smoother finish. "
|
||||
"If left zero, default extrusion width will be used if set, otherwise nozzle diameter will be used. "
|
||||
"If expressed as percentage (for example 110%) it will be computed over nozzle diameter.") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
"If expressed as percentage (for example 110%) it will be computed over nozzle diameter."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -4020,8 +4020,8 @@ void PrintConfigDef::init_fff_params()
|
||||
def = this->add("top_infill_extrusion_spacing", coFloatOrPercent);
|
||||
def->label = L("Top solid spacing");
|
||||
def->category = OptionCategory::width;
|
||||
def->tooltip = L("Like Top solid infill width but spacing is the distance between two lines (as they overlap a bit, it's not the same).") + std::string("\n") +
|
||||
L("You can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->tooltip = L("Like Top solid infill width but spacing is the distance between two lines (as they overlap a bit, it's not the same)."
|
||||
"\nYou can set either 'Spacing', or 'Width'; the other will be calculated, using default layer height.");
|
||||
def->sidetext = L("mm or %");
|
||||
def->ratio_over = "nozzle_diameter";
|
||||
def->min = 0;
|
||||
@ -4798,7 +4798,7 @@ void PrintConfigDef::init_sla_params()
|
||||
def->set_default_value(new ConfigOptionFloat(15));
|
||||
|
||||
def = this->add("material_correction", coFloats);
|
||||
def->full_label = L("Correction for expansion");
|
||||
def->label = L("Correction for expansion");
|
||||
def->tooltip = L("Correction for expansion");
|
||||
def->min = 0;
|
||||
def->mode = comExpert;
|
||||
|
@ -40,14 +40,31 @@ namespace GUI {
|
||||
|
||||
}
|
||||
|
||||
void CalibrationAbstractDialog::create(std::string html_path, wxSize dialog_size){
|
||||
void CalibrationAbstractDialog::create(std::string html_path, std::string html_name, wxSize dialog_size){
|
||||
|
||||
auto main_sizer = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
//language
|
||||
wxString language = wxGetApp().current_language_code();
|
||||
std::string full_file_path = Slic3r::resources_dir() + html_path+"/"+ into_u8(language)+"_"+ html_name;
|
||||
if (language == "en") {
|
||||
full_file_path = Slic3r::resources_dir() + html_path + "/" + html_name;
|
||||
}else if (!boost::filesystem::exists(full_file_path)) {
|
||||
language = wxGetApp().current_language_code_safe();
|
||||
full_file_path = Slic3r::resources_dir() + html_path + "/" + into_u8(language) + "_" + html_name;
|
||||
if (!boost::filesystem::exists(full_file_path)) {
|
||||
language = language.IsEmpty() ? "en" : language.BeforeFirst('_');
|
||||
full_file_path = Slic3r::resources_dir() + html_path + "/" + into_u8(language) + "_" + html_name;
|
||||
if (!boost::filesystem::exists(full_file_path)) {
|
||||
full_file_path = Slic3r::resources_dir() + html_path + "/" + html_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//html
|
||||
html_viewer = new wxHtmlWindow(this, wxID_ANY,
|
||||
wxDefaultPosition, wxDefaultSize, wxHW_SCROLLBAR_AUTO);
|
||||
html_viewer->LoadPage(Slic3r::resources_dir()+ html_path);
|
||||
html_viewer->LoadPage(full_file_path);
|
||||
main_sizer->Add(html_viewer, 1, wxEXPAND | wxALL, 5);
|
||||
|
||||
wxDisplay display(wxDisplay::GetFromWindow(main_frame));
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
private:
|
||||
wxPanel* create_header(wxWindow* parent, const wxFont& bold_font);
|
||||
protected:
|
||||
void create(std::string html_path, wxSize dialogsize = wxSize(850, 550));
|
||||
void create(std::string html_path, std::string html_name, wxSize dialogsize = wxSize(850, 550));
|
||||
virtual void create_buttons(wxStdDialogButtonSizer*) = 0;
|
||||
void on_dpi_changed(const wxRect& suggested_rect) override;
|
||||
void close_me(wxCommandEvent& event_args);
|
||||
@ -42,7 +42,7 @@ class HtmlDialog : public CalibrationAbstractDialog
|
||||
{
|
||||
|
||||
public:
|
||||
HtmlDialog(GUI_App* app, MainFrame* mainframe, std::string title, std::string html_path) : CalibrationAbstractDialog(app, mainframe, title) { create(html_path); }
|
||||
HtmlDialog(GUI_App* app, MainFrame* mainframe, std::string title, std::string html_path, std::string html_name) : CalibrationAbstractDialog(app, mainframe, title) { create(html_path, html_name); }
|
||||
virtual ~HtmlDialog() {}
|
||||
protected:
|
||||
void create_buttons(wxStdDialogButtonSizer* sizer) override {}
|
||||
|
@ -10,7 +10,7 @@ class CalibrationBedDialog : public CalibrationAbstractDialog
|
||||
{
|
||||
|
||||
public:
|
||||
CalibrationBedDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Bed leveling calibration") { create("/calibration/bed_leveling/bed_leveling.html"); }
|
||||
CalibrationBedDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Bed leveling calibration") { create("/calibration/bed_leveling", "bed_leveling.html"); }
|
||||
virtual ~CalibrationBedDialog() {}
|
||||
protected:
|
||||
void create_buttons(wxStdDialogButtonSizer* sizer) override;
|
||||
|
@ -10,7 +10,7 @@ class CalibrationBridgeDialog : public CalibrationAbstractDialog
|
||||
{
|
||||
|
||||
public:
|
||||
CalibrationBridgeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Bridge calibration") { create("/calibration/bridge_flow/bridge_flow.html", wxSize(850, 400)); }
|
||||
CalibrationBridgeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Bridge calibration") { create("/calibration/bridge_flow", "bridge_flow.html", wxSize(850, 400)); }
|
||||
virtual ~CalibrationBridgeDialog() { }
|
||||
|
||||
protected:
|
||||
|
@ -10,7 +10,7 @@ class CalibrationCubeDialog : public CalibrationAbstractDialog
|
||||
{
|
||||
|
||||
public:
|
||||
CalibrationCubeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Calibration cube") { create("/calibration/cube/cube.html"); }
|
||||
CalibrationCubeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Calibration cube") { create("/calibration/cube", "cube.html"); }
|
||||
virtual ~CalibrationCubeDialog(){ }
|
||||
|
||||
protected:
|
||||
|
@ -10,7 +10,7 @@ class CalibrationFlowDialog : public CalibrationAbstractDialog
|
||||
{
|
||||
|
||||
public:
|
||||
CalibrationFlowDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Flow calibration") { create("/calibration/filament_flow/filament_flow.html", wxSize(900, 500)); }
|
||||
CalibrationFlowDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Flow calibration") { create("/calibration/filament_flow","filament_flow.html", wxSize(900, 500)); }
|
||||
virtual ~CalibrationFlowDialog() {}
|
||||
|
||||
protected:
|
||||
|
@ -10,7 +10,7 @@ class CalibrationOverBridgeDialog : public CalibrationAbstractDialog
|
||||
{
|
||||
|
||||
public:
|
||||
CalibrationOverBridgeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Ironing pattern calibration") { create("/calibration/over-bridge_tuning/over-bridge_tuning.html", wxSize(900, 500)); }
|
||||
CalibrationOverBridgeDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Ironing pattern calibration") { create("/calibration/over-bridge_tuning", "over-bridge_tuning.html", wxSize(900, 500)); }
|
||||
virtual ~CalibrationOverBridgeDialog() { }
|
||||
|
||||
protected:
|
||||
|
@ -10,7 +10,7 @@ class CalibrationRetractionDialog : public CalibrationAbstractDialog
|
||||
{
|
||||
|
||||
public:
|
||||
CalibrationRetractionDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Flow calibration") { create("/calibration/retraction/retraction.html", wxSize(900, 500)); }
|
||||
CalibrationRetractionDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Flow calibration") { create("/calibration/retraction", "retraction.html", wxSize(900, 500)); }
|
||||
virtual ~CalibrationRetractionDialog() {}
|
||||
|
||||
protected:
|
||||
|
@ -10,7 +10,7 @@ class CalibrationTempDialog : public CalibrationAbstractDialog
|
||||
{
|
||||
|
||||
public:
|
||||
CalibrationTempDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Temperature calibration") { create("/calibration/filament_temp/filament_temp.html"); }
|
||||
CalibrationTempDialog(GUI_App* app, MainFrame* mainframe) : CalibrationAbstractDialog(app, mainframe, "Temperature calibration") { create("/calibration/filament_temp", "filament_temp.html"); }
|
||||
virtual ~CalibrationTempDialog(){ }
|
||||
|
||||
protected:
|
||||
|
@ -48,28 +48,28 @@ static wxString generate_html_row(const Config::Snapshot &snapshot, bool row_eve
|
||||
text += " (" + wxString::FromUTF8(snapshot.comment.data()) + ")";
|
||||
text += "</b></font><br>";
|
||||
// End of row header.
|
||||
text += _(L(SLIC3R_APP_NAME " version")) + ": " + snapshot.slic3r_version_captured.to_string() + "<br>";
|
||||
text += wxString::Format( _L( "%s version"), SLIC3R_APP_NAME) + ": " + snapshot.slic3r_version_captured.to_string() + "<br>";
|
||||
bool has_fff = ! snapshot.print.empty() || ! snapshot.filaments.empty();
|
||||
bool has_sla = ! snapshot.sla_print.empty() || ! snapshot.sla_material.empty();
|
||||
if (has_fff || ! has_sla) {
|
||||
text += _(L("print")) + ": " + snapshot.print + "<br>";
|
||||
text += _(L("filaments")) + ": " + snapshot.filaments.front() + "<br>";
|
||||
text += _L("print") + ": " + snapshot.print + "<br>";
|
||||
text += _L("filaments") + ": " + snapshot.filaments.front() + "<br>";
|
||||
}
|
||||
if (has_sla) {
|
||||
text += _(L("SLA print")) + ": " + snapshot.sla_print + "<br>";
|
||||
text += _(L("SLA material")) + ": " + snapshot.sla_material + "<br>";
|
||||
text += _L("SLA print") + ": " + snapshot.sla_print + "<br>";
|
||||
text += _L("SLA material") + ": " + snapshot.sla_material + "<br>";
|
||||
}
|
||||
text += _(L("printer")) + ": " + (snapshot.physical_printer.empty() ? snapshot.printer : snapshot.physical_printer) + "<br>";
|
||||
|
||||
bool compatible = true;
|
||||
for (const Config::Snapshot::VendorConfig &vc : snapshot.vendor_configs) {
|
||||
text += _(L("vendor")) + ": " + vc.name +", " + _(L("version")) + ": " + vc.version.config_version.to_string() +
|
||||
", " + _(L("min " SLIC3R_APP_NAME " version")) + ": " + vc.version.min_slic3r_version.to_string();
|
||||
text += _L("vendor") + ": " + vc.name +", " + _L("version") + ": " + vc.version.config_version.to_string() +
|
||||
", " + wxString::Format(_L("min %s version"), SLIC3R_APP_NAME) + ": " + vc.version.min_slic3r_version.to_string();
|
||||
if (vc.version.max_slic3r_version != Semver::inf())
|
||||
text += ", " + _(L("max " SLIC3R_APP_NAME " version")) + ": " + vc.version.max_slic3r_version.to_string();
|
||||
text += ", " + wxString::Format(_L("max %s version"), SLIC3R_APP_NAME) + ": " + vc.version.max_slic3r_version.to_string();
|
||||
text += "<br>";
|
||||
for (const std::pair<std::string, std::set<std::string>> &model : vc.models_variants_installed) {
|
||||
text += _(L("model")) + ": " + model.first + ", " + _(L("variants")) + ": ";
|
||||
text += _L("model") + ": " + model.first + ", " + _L("variants") + ": ";
|
||||
for (const std::string &variant : model.second) {
|
||||
if (&variant != &*model.second.begin())
|
||||
text += ", ";
|
||||
@ -81,10 +81,10 @@ static wxString generate_html_row(const Config::Snapshot &snapshot, bool row_eve
|
||||
}
|
||||
|
||||
if (! compatible) {
|
||||
text += "<p align=\"right\">" + from_u8((boost::format(_utf8(L("Incompatible with this %s"))) % SLIC3R_APP_NAME).str()) + "</p>";
|
||||
text += "<p align=\"right\">" + wxString::Format(_L("Incompatible with this %s"), SLIC3R_APP_NAME) + "</p>";
|
||||
}
|
||||
else if (! snapshot_active)
|
||||
text += "<p align=\"right\"><a href=\"" + snapshot.id + "\">" + _(L("Activate")) + "</a></p>";
|
||||
text += "<p align=\"right\"><a href=\"" + snapshot.id + "\">" + _L("Activate") + "</a></p>";
|
||||
text += "</td>";
|
||||
text += "</tr>";
|
||||
return text;
|
||||
|
@ -1200,8 +1200,8 @@ PageReloadFromDisk::PageReloadFromDisk(ConfigWizard* parent)
|
||||
PageFilesAssociation::PageFilesAssociation(ConfigWizard* parent)
|
||||
: ConfigWizardPage(parent, _L("Files association"), _L("Files association"))
|
||||
{
|
||||
cb_3mf = new wxCheckBox(this, wxID_ANY, _L("Associate .3mf files to " SLIC3R_APP_NAME));
|
||||
cb_stl = new wxCheckBox(this, wxID_ANY, _L("Associate .stl files to " SLIC3R_APP_NAME));
|
||||
cb_3mf = new wxCheckBox(this, wxID_ANY, from_u8((boost::format(_u8L("Associate .3mf files to %1%")) % SLIC3R_APP_NAME).str()));
|
||||
cb_stl = new wxCheckBox(this, wxID_ANY, from_u8((boost::format(_u8L("Associate .stl files to %1%")) % SLIC3R_APP_NAME).str()));
|
||||
// cb_gcode = new wxCheckBox(this, wxID_ANY, _L("Associate .gcode files to PrusaSlicer G-code Viewer"));
|
||||
|
||||
append(cb_3mf);
|
||||
@ -1214,10 +1214,10 @@ PageFilesAssociation::PageFilesAssociation(ConfigWizard* parent)
|
||||
PageMode::PageMode(ConfigWizard *parent)
|
||||
: ConfigWizardPage(parent, _L("View mode"), _L("View mode"))
|
||||
{
|
||||
append_text(_L(SLIC3R_APP_NAME "'s user interfaces comes in three variants:\nSimple, Advanced, and Expert.\n"
|
||||
append_text(wxString::Format(_L("%s's user interfaces comes in three variants:\nSimple, Advanced, and Expert.\n"
|
||||
"The Simple mode shows only the most frequently used settings relevant for regular 3D printing. "
|
||||
"The other two offer progressively more sophisticated fine-tuning, "
|
||||
"they are suitable for advanced and expert users, respectively."));
|
||||
"they are suitable for advanced and expert users, respectively."), SLIC3R_APP_NAME));
|
||||
|
||||
radio_simple = new wxRadioButton(this, wxID_ANY, _L("Simple mode"));
|
||||
radio_advanced = new wxRadioButton(this, wxID_ANY, _L("Advanced mode"));
|
||||
|
@ -168,7 +168,7 @@ FreeCADDialog::~FreeCADDialog() {
|
||||
}
|
||||
|
||||
FreeCADDialog::FreeCADDialog(GUI_App* app, MainFrame* mainframe)
|
||||
: DPIDialog(NULL, wxID_ANY, wxString(SLIC3R_APP_NAME) + " - " + _(L("FreePySCAD : script engine for FreeCAD")),
|
||||
: DPIDialog(NULL, wxID_ANY, wxString(SLIC3R_APP_NAME) + " - " + _L("FreePySCAD : script engine for FreeCAD"),
|
||||
//#if ENABLE_SCROLLABLE
|
||||
wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER)
|
||||
//#else
|
||||
|
@ -609,9 +609,9 @@ static void generic_exception_handle()
|
||||
BOOST_LOG_TRIVIAL(error) << boost::format("std::bad_alloc exception: %1%") % ex.what();
|
||||
std::terminate();
|
||||
} catch (const boost::io::bad_format_string& ex) {
|
||||
wxString errmsg = _L(SLIC3R_APP_NAME " has encountered a localization error. "
|
||||
"Please report to " SLIC3R_APP_NAME " team, what language was active and in which scenario "
|
||||
"this issue happened. Thank you.\n\nThe application will now terminate.");
|
||||
wxString errmsg = wxString::Format(_L( "%s has encountered a localization error. "
|
||||
"Please report to %s team, what language was active and in which scenario "
|
||||
"this issue happened. Thank you.\n\nThe application will now terminate."), SLIC3R_APP_NAME, SLIC3R_APP_NAME);
|
||||
wxMessageBox(errmsg + "\n\n" + wxString(ex.what()), _L("Critical error"), wxOK | wxICON_ERROR);
|
||||
BOOST_LOG_TRIVIAL(error) << boost::format("Uncaught exception: %1%") % ex.what();
|
||||
std::terminate();
|
||||
@ -744,14 +744,14 @@ void GUI_App::init_app_config()
|
||||
// Error while parsing config file. We'll customize the error message and rethrow to be displayed.
|
||||
if (is_editor()) {
|
||||
throw Slic3r::RuntimeError(
|
||||
_u8L("Error parsing " SLIC3R_APP_NAME " config file, it is probably corrupted. "
|
||||
"Try to manually delete the file to recover from the error. Your user profiles will not be affected.") +
|
||||
(boost::format(_u8L("Error parsing %1% config file, it is probably corrupted. "
|
||||
"Try to manually delete the file to recover from the error. Your user profiles will not be affected.")) % std::string(SLIC3R_APP_NAME)).str() +
|
||||
"\n\n" + app_config->config_path() + "\n\n" + error);
|
||||
}
|
||||
else {
|
||||
throw Slic3r::RuntimeError(
|
||||
_u8L("Error parsing " GCODEVIEWER_APP_NAME " config file, it is probably corrupted. "
|
||||
"Try to manually delete the file to recover from the error.") +
|
||||
(boost::format(_u8L("Error parsing %1% config file, it is probably corrupted. "
|
||||
"Try to manually delete the file to recover from the error.")) % std::string(GCODEVIEWER_APP_NAME)).str() +
|
||||
"\n\n" + app_config->config_path() + "\n\n" + error);
|
||||
}
|
||||
}
|
||||
@ -1218,8 +1218,8 @@ void GUI_App::check_printer_presets()
|
||||
for (const std::string& preset_name : preset_names)
|
||||
msg_text += "\n \"" + from_u8(preset_name) + "\",";
|
||||
msg_text.RemoveLast();
|
||||
msg_text += "\n\n" + _L("But since this version of " SLIC3R_APP_NAME " we don't show this information in Printer Settings anymore.\n"
|
||||
"Settings will be available in physical printers settings.") + "\n\n" +
|
||||
msg_text += "\n\n" + wxString::Format(_L("But since this version of %s we don't show this information in Printer Settings anymore.\n"
|
||||
"Settings will be available in physical printers settings."), SLIC3R_APP_NAME) + "\n\n" +
|
||||
_L("By default new Printer devices will be named as \"Printer N\" during its creation.\n"
|
||||
"Note: This name can be changed later from the physical printers settings");
|
||||
|
||||
@ -1319,7 +1319,7 @@ void GUI_App::change_calibration_dialog(const wxDialog* have_to_destroy, wxDialo
|
||||
|
||||
void GUI_App::html_dialog()
|
||||
{
|
||||
change_calibration_dialog(nullptr, new HtmlDialog(this, mainframe,"Introduction to calibrations", "/calibration/introduction.html"));
|
||||
change_calibration_dialog(nullptr, new HtmlDialog(this, mainframe,"Introduction to calibrations", "/calibration", "introduction.html"));
|
||||
}
|
||||
void GUI_App::bed_leveling_dialog()
|
||||
{
|
||||
|
@ -85,10 +85,10 @@ int GUI_Run(GUI_InitParams ¶ms)
|
||||
return result;
|
||||
} catch (const Slic3r::Exception &ex) {
|
||||
boost::nowide::cerr << ex.what() << std::endl;
|
||||
wxMessageBox(boost::nowide::widen(ex.what()), _L(SLIC3R_APP_NAME " GUI initialization failed"), wxICON_STOP);
|
||||
wxMessageBox(boost::nowide::widen(ex.what()), wxString::Format(_L("%s GUI initialization failed"), SLIC3R_APP_NAME), wxICON_STOP);
|
||||
} catch (const std::exception &ex) {
|
||||
boost::nowide::cerr << SLIC3R_APP_NAME << " GUI initialization failed: " << ex.what() << std::endl;
|
||||
wxMessageBox(format_wxstr(_L("Fatal error, exception catched: %1%"), ex.what()), _L(SLIC3R_APP_NAME " GUI initialization failed"), wxICON_STOP);
|
||||
wxMessageBox(format_wxstr(_L("Fatal error, exception catched: %1%"), ex.what()), wxString::Format(_L("%s GUI initialization failed"), SLIC3R_APP_NAME), wxICON_STOP);
|
||||
}
|
||||
|
||||
// error
|
||||
|
@ -241,19 +241,19 @@ bool Preview::init(wxWindow* parent, Model* model)
|
||||
m_bottom_toolbar_panel = new wxPanel(this);
|
||||
m_label_view_type = new wxStaticText(m_bottom_toolbar_panel, wxID_ANY, _L("View"));
|
||||
m_choice_view_type = new wxChoice(m_bottom_toolbar_panel, wxID_ANY);
|
||||
m_choice_view_label[GCodeViewer::EViewType::FeatureType] = wxString(_L(m_width_screen == tiny ? "Feature" : "Feature type"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::Height] = wxString(_L("Height"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::Width] = wxString(_L("Width"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::Feedrate] = wxString(_L("Speed"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::FanSpeed] = wxString(_L(m_width_screen == tiny ? "Fan" : "Fan speed"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::LayerTime] = wxString(_L(m_width_screen == tiny ? "time" : "Layer time"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::LayerTimeLog] = wxString(_L(m_width_screen == tiny ? "Log time" : "Layer time (log)"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::Chronology] = wxString(_L(m_width_screen == tiny ? "Chrono" : "Chronology"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::VolumetricRate] = wxString(_L(m_width_screen == tiny ? "Vol. flow" : "Volumetric flow rate"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::Tool] = wxString(_L("Tool"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::Filament] = wxString(_L("Filament"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::ColorPrint] = wxString(_L(m_width_screen == tiny ? "Color" : "Color Print"));
|
||||
m_choice_view_label[GCodeViewer::EViewType::ExtruderTemp] = wxString(_L((m_width_screen == tiny ? "Temp" : "Temperature")));
|
||||
m_choice_view_label[GCodeViewer::EViewType::FeatureType] = m_width_screen == tiny ? _L("Feature") : _L("Feature type");
|
||||
m_choice_view_label[GCodeViewer::EViewType::Height] = _L("Height");
|
||||
m_choice_view_label[GCodeViewer::EViewType::Width] = _L("Width");
|
||||
m_choice_view_label[GCodeViewer::EViewType::Feedrate] = _L("Speed");
|
||||
m_choice_view_label[GCodeViewer::EViewType::FanSpeed] = m_width_screen == tiny ? _L("Fan") : _L("Fan speed");
|
||||
m_choice_view_label[GCodeViewer::EViewType::LayerTime] = m_width_screen == tiny ? _L("time") : _L("Layer time");
|
||||
m_choice_view_label[GCodeViewer::EViewType::LayerTimeLog] = m_width_screen == tiny ? _L("Log time") : _L("Layer time (log)");
|
||||
m_choice_view_label[GCodeViewer::EViewType::Chronology] = m_width_screen == tiny ? _L("Chrono") : _L("Chronology");
|
||||
m_choice_view_label[GCodeViewer::EViewType::VolumetricRate] = m_width_screen == tiny ? _L("Vol. flow") : _L("Volumetric flow rate");
|
||||
m_choice_view_label[GCodeViewer::EViewType::Tool] = _L("Tool");
|
||||
m_choice_view_label[GCodeViewer::EViewType::Filament] = _L("Filament");
|
||||
m_choice_view_label[GCodeViewer::EViewType::ColorPrint] = m_width_screen == tiny ? _L("Color") : _L("Color Print");
|
||||
m_choice_view_label[GCodeViewer::EViewType::ExtruderTemp] = m_width_screen == tiny ? _L("Temp") : _L("Temperature");
|
||||
for(int i=0; i < (int)GCodeViewer::EViewType::Count; i++)
|
||||
m_choice_view_type->Append(m_choice_view_label[(GCodeViewer::EViewType)i]);
|
||||
m_choice_view_type->SetSelection(0);
|
||||
|
@ -1086,11 +1086,11 @@ static const wxString sep_space = "";
|
||||
static wxMenu* generate_help_menu()
|
||||
{
|
||||
wxMenu* helpMenu = new wxMenu();
|
||||
append_menu_item(helpMenu, wxID_ANY, _L(SLIC3R_APP_NAME " Releases"), wxString::Format(_L("Open the %s releases page in your browser"), SLIC3R_APP_NAME),
|
||||
append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("%s Releases"), SLIC3R_APP_NAME), wxString::Format(_L("Open the %s releases page in your browser"), SLIC3R_APP_NAME),
|
||||
[](wxCommandEvent&) { wxLaunchDefaultBrowser(SLIC3R_DOWNLOAD); });
|
||||
append_menu_item(helpMenu, wxID_ANY, _L(SLIC3R_APP_NAME " wiki"), wxString::Format(_L("Open the %s wiki in your browser"), SLIC3R_APP_NAME),
|
||||
append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("%s wiki"), SLIC3R_APP_NAME), wxString::Format(_L("Open the %s wiki in your browser"), SLIC3R_APP_NAME),
|
||||
[](wxCommandEvent&) { wxLaunchDefaultBrowser("http://github.com/" SLIC3R_GITHUB "/wiki"); });
|
||||
append_menu_item(helpMenu, wxID_ANY, _L(SLIC3R_APP_NAME " website"), _L("Open the Slic3r website in your browser"),
|
||||
append_menu_item(helpMenu, wxID_ANY, wxString::Format(_L("%s website"), SLIC3R_APP_NAME), _L("Open the Slic3r website in your browser"),
|
||||
[](wxCommandEvent&) { wxLaunchDefaultBrowser("http://slic3r.org"); });
|
||||
//# my $versioncheck = $self->_append_menu_item($helpMenu, "Check for &Updates...", "Check for new Slic3r versions", sub{
|
||||
//# wxTheApp->check_version(1);
|
||||
@ -1417,7 +1417,7 @@ void MainFrame::init_menubar_as_editor()
|
||||
[this](wxCommandEvent&) { m_printhost_queue_dlg->Show(); }, "upload_queue", nullptr, []() {return true; }, this);
|
||||
|
||||
windowMenu->AppendSeparator();
|
||||
append_menu_item(windowMenu, wxID_ANY, _L("Open new instance") + "\tCtrl+Shift+" + "I", _L("Open a new " SLIC3R_APP_NAME " instance"),
|
||||
append_menu_item(windowMenu, wxID_ANY, _L("Open new instance") + "\tCtrl+Shift+" + "I", wxString::Format(_L("Open a new %s instance"), SLIC3R_APP_NAME),
|
||||
[this](wxCommandEvent&) { start_new_slicer(); }, "", nullptr, [this]() {return m_plater != nullptr && wxGetApp().app_config->get("single_instance") != "1"; }, this);
|
||||
}
|
||||
|
||||
@ -1527,7 +1527,7 @@ void MainFrame::init_menubar_as_gcodeviewer()
|
||||
append_menu_item(fileMenu, wxID_ANY, _L("Export &toolpaths as OBJ") + dots, _L("Export toolpaths as OBJ"),
|
||||
[this](wxCommandEvent&) { if (m_plater != nullptr) m_plater->export_toolpaths_to_obj(); }, "export_plater", nullptr,
|
||||
[this]() {return can_export_toolpaths(); }, this);
|
||||
append_menu_item(fileMenu, wxID_ANY, _L("O&pen " SLIC3R_APP_NAME) + dots, _L("Open " SLIC3R_APP_NAME),
|
||||
append_menu_item(fileMenu, wxID_ANY, wxString::Format(_L("O&pen %s"), SLIC3R_APP_NAME) + dots, wxString::Format(_L("Open %s"), SLIC3R_APP_NAME),
|
||||
[this](wxCommandEvent&) { start_new_slicer(); }, "", nullptr,
|
||||
[this]() {return true; }, this);
|
||||
fileMenu->AppendSeparator();
|
||||
|
@ -176,11 +176,9 @@ wxPoint OG_CustomCtrl::get_pos(const Line& line, Field* field_in/* = nullptr*/)
|
||||
// add label if any
|
||||
if (!option.label.empty()) {
|
||||
std::string opt_label = (option.label.empty() || option.label.back() != '_') ? option.label : option.label.substr(0, option.label.size() - 1);
|
||||
std::cout << "translate '" << opt_label << "' to '";
|
||||
//! To correct translation by context have to use wxGETTEXT_IN_CONTEXT macro from wxWidget 3.1.1
|
||||
label = /*(opt_label == L_CONTEXT("Top", "Layers") || opt_label == L_CONTEXT("Bottom", "Layers")) ?
|
||||
_CTX(opt_label, "Layers") :*/ _(opt_label);
|
||||
std::cout << label << "'\n";
|
||||
bool no_dots = label.empty() || option.label.back() == '_';
|
||||
if (!no_dots)
|
||||
label += ":";
|
||||
@ -820,11 +818,11 @@ RememberChoiceDialog::RememberChoiceDialog(wxWindow* parent, const wxString& msg
|
||||
return;
|
||||
wxString preferences_item = _L("Suppress to open hyperlink in browser");
|
||||
wxString msg =
|
||||
_L(SLIC3R_APP_NAME " will remember your choice.") + "\n\n" +
|
||||
wxString::Format(_L("%s will remember your choice."), SLIC3R_APP_NAME) + "\n\n" +
|
||||
_L("You will not be asked about it again on label hovering.") + "\n\n" +
|
||||
format_wxstr(_L("Visit \"Preferences\" and check \"%1%\"\nto changes your choice."), preferences_item);
|
||||
|
||||
wxMessageDialog dialog(nullptr, msg, _L(SLIC3R_APP_NAME ": Don't ask me again"), wxOK | wxCANCEL | wxICON_INFORMATION);
|
||||
wxMessageDialog dialog(nullptr, msg, wxString::Format(_L("%s: Don't ask me again"), SLIC3R_APP_NAME), wxOK | wxCANCEL | wxICON_INFORMATION);
|
||||
if (dialog.ShowModal() == wxID_CANCEL)
|
||||
m_remember_choice->SetValue(false);
|
||||
});
|
||||
|
@ -257,14 +257,15 @@ bool OpenGLManager::init_gl()
|
||||
bool valid_version = s_gl_info.is_version_greater_or_equal_to(2, 0);
|
||||
if (!valid_version) {
|
||||
// Complain about the OpenGL version.
|
||||
wxString message = from_u8((boost::format(
|
||||
_utf8(L(SLIC3R_APP_NAME " requires OpenGL 2.0 capable graphics driver to run correctly, \n"
|
||||
"while OpenGL version %s, render %s, vendor %s was detected."))) % s_gl_info.get_version() % s_gl_info.get_renderer() % s_gl_info.get_vendor()).str());
|
||||
wxString message = wxString::Format(
|
||||
_L( "%s requires OpenGL 2.0 capable graphics driver to run correctly, \n"
|
||||
"while OpenGL version %s, render %s, vendor %s was detected."),
|
||||
SLIC3R_APP_NAME, s_gl_info.get_version(), s_gl_info.get_renderer(), s_gl_info.get_vendor());
|
||||
message += "\n";
|
||||
message += _L("You may need to update your graphics card driver.");
|
||||
#ifdef _WIN32
|
||||
message += "\n";
|
||||
message += _L("As a workaround, you may run " SLIC3R_APP_NAME " with a software rendered 3D graphics by running " SLIC3R_APP_CMD ".exe with the --sw-renderer parameter.");
|
||||
message += wxString::Format(_L("As a workaround, you may run %s with a software rendered 3D graphics by running %s.exe with the --sw-renderer parameter."), SLIC3R_APP_NAME, SLIC3R_APP_CMD);
|
||||
#endif
|
||||
wxMessageBox(message, wxString(SLIC3R_APP_NAME " - ") + _L("Unsupported OpenGL version"), wxOK | wxICON_ERROR);
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ void PreferencesDialog::build()
|
||||
// Please keep in sync with ConfigWizard
|
||||
def.label = L("Check for application updates");
|
||||
def.type = coBool;
|
||||
def.tooltip = L("If enabled, " SLIC3R_APP_NAME " will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done.");
|
||||
def.tooltip = L("If enabled, Slic3r will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done.");
|
||||
def.set_default_value(new ConfigOptionBool(app_config->get("version_check") == "1"));
|
||||
option = Option(def, "version_check");
|
||||
m_optgroup_general->append_single_option_line(option);
|
||||
@ -380,8 +380,8 @@ void PreferencesDialog::build()
|
||||
|
||||
def.label = L("Tab icon size");
|
||||
def.type = coInt;
|
||||
def.tooltip = std::string(L("Size of the tab icons, in pixels. Set to 0 to remove icons."))
|
||||
+ std::string(L("\nYou have to restart the application before any change will be taken into account."));
|
||||
def.tooltip = L("Size of the tab icons, in pixels. Set to 0 to remove icons."
|
||||
"\nYou have to restart the application before any change will be taken into account.");
|
||||
def.set_default_value(new ConfigOptionInt{ atoi(app_config->get("tab_icon_size").c_str()) });
|
||||
option = Option(def, "tab_icon_size");
|
||||
option.opt.width = 6;
|
||||
|
@ -1956,12 +1956,12 @@ bool Tab::create_pages(std::string setting_type_name, int idx_page)
|
||||
} else if (boost::starts_with(full_line, "print_host_upload_description")) {
|
||||
TabPrinter* tab = nullptr;
|
||||
if ((tab = dynamic_cast<TabPrinter*>(this)) == nullptr) continue;
|
||||
wxString description_line_text = _L(""
|
||||
wxString description_line_text = wxString::Format(_L(""
|
||||
"Note: All parameters from this group are moved to the Physical Printer settings (see changelog).\n\n"
|
||||
"A new Physical Printer profile is created by clicking on the \"cog\" icon right of the Printer profiles combo box, "
|
||||
"by selecting the \"Add physical printer\" item in the Printer combo box. The Physical Printer profile editor opens "
|
||||
"also when clicking on the \"cog\" icon in the Printer settings tab. The Physical Printer profiles are being stored "
|
||||
"into " SLIC3R_APP_NAME "/physical_printer directory.");
|
||||
"into %s/physical_printer directory."), SLIC3R_APP_KEY);
|
||||
|
||||
current_line = { "", "" };
|
||||
current_line.full_width = 1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user