i18n(fr): complete French translation to 100% + extract 3DPrinterOS dialog (#14037)
i18n(fr): complete French translation and extract 3DPrinterOS dialog Translation (localization/i18n/fr/OrcaSlicer_fr.po): - Translate 222 missing strings and revise 23 fuzzy entries (vouvoiement) - Quality review of the existing catalog: fix 42 entries - "supported" calque -> "pris en charge" (physical sense -> "soutenu") - accented capitals (Emission -> Émission, Editer -> Modifier) - "cryptage" -> "chiffrement"; "initiés" -> "lancés"; "impacté" -> "affecté" - "basé sur" rephrased contextually; ASCII "..." -> "…" in FR strings - Result: 0 untranslated, 0 fuzzy; placeholders preserved; msgfmt clean Extraction (3DPrinterOS upload dialog, src/slic3r/Utils/3DPrinterOS.cpp): - Wrap 9 hardcoded user-facing strings in _L() - Align the radio-label comparison on _L() so the show/hide logic keeps working once the label is translated - Add the file to localization/i18n/list.txt for gettext extraction - Add the 7 new msgids to OrcaSlicer.pot and translate them in fr.po Co-authored-by: SoftFever <softfeverever@gmail.com>
This commit is contained in:
@@ -19712,3 +19712,24 @@ msgstr ""
|
||||
#: resources/data/hints.ini: [hint:Avoid warping]
|
||||
msgid "Avoid warping\nDid you know that when printing materials that are prone to warping such as ABS, appropriately increasing the heatbed temperature can reduce the probability of warping?"
|
||||
msgstr ""
|
||||
|
||||
msgid "3DPrinterOS Cloud upload options"
|
||||
msgstr ""
|
||||
|
||||
msgid "Single file"
|
||||
msgstr ""
|
||||
|
||||
msgid "Project File"
|
||||
msgstr ""
|
||||
|
||||
msgid "Project:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Printer type:"
|
||||
msgstr ""
|
||||
|
||||
msgid "Printer type not found, please select manually."
|
||||
msgstr ""
|
||||
|
||||
msgid "Authorizing..."
|
||||
msgstr ""
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -218,6 +218,7 @@ src/slic3r/GUI/CreatePresetsDialog.cpp
|
||||
src/slic3r/GUI/DailyTips.cpp
|
||||
src/slic3r/Utils/CalibUtils.cpp
|
||||
src/slic3r/GUI/PhysicalPrinterDialog.cpp
|
||||
src/slic3r/Utils/3DPrinterOS.cpp
|
||||
src/slic3r/Utils/AstroBox.cpp
|
||||
src/slic3r/Utils/Duet.cpp
|
||||
src/slic3r/Utils/FlashAir.cpp
|
||||
|
||||
@@ -44,7 +44,7 @@ public:
|
||||
const wxString preset_name)
|
||||
: Slic3r::GUI::DPIDialog(parent,
|
||||
wxID_ANY,
|
||||
"3DPrinterOS Cloud upload options",
|
||||
_L("3DPrinterOS Cloud upload options"),
|
||||
wxDefaultPosition,
|
||||
wxSize(100 * Slic3r::GUI::wxGetApp().em_unit(), -1),
|
||||
wxDEFAULT_DIALOG_STYLE),
|
||||
@@ -54,15 +54,15 @@ public:
|
||||
SetBackgroundColour(*wxWHITE);
|
||||
SetForegroundColour(*wxBLACK);
|
||||
|
||||
singleRadio = new wxRadioButton(this, wxID_ANY, "Single file", wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
|
||||
projectRadio = new wxRadioButton(this, wxID_ANY, "Project File");
|
||||
projectsLabel = new wxStaticText(this, wxID_ANY, "Project:");
|
||||
wxStaticText* printerLabel = new wxStaticText(this, wxID_ANY, "Printer type:");
|
||||
singleRadio = new wxRadioButton(this, wxID_ANY, _L("Single file"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
|
||||
projectRadio = new wxRadioButton(this, wxID_ANY, _L("Project File"));
|
||||
projectsLabel = new wxStaticText(this, wxID_ANY, _L("Project:"));
|
||||
wxStaticText* printerLabel = new wxStaticText(this, wxID_ANY, _L("Printer type:"));
|
||||
|
||||
projectsComboBox = new wxComboBox(this, wxID_ANY, wxString(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, DD_NO_CHECK_ICON);
|
||||
printerTypeComboBox = new wxComboBox(this, wxID_ANY, wxString(""), wxDefaultPosition, wxDefaultSize, 0, nullptr, DD_NO_CHECK_ICON | wxTE_READONLY);
|
||||
|
||||
printerWarningLabel = new wxStaticText(this, wxID_ANY, "Printer type not found, please select manually.");
|
||||
printerWarningLabel = new wxStaticText(this, wxID_ANY, _L("Printer type not found, please select manually."));
|
||||
printerWarningLabel->SetForegroundColour(*wxRED);
|
||||
printerWarningLabel->Hide();
|
||||
|
||||
@@ -83,8 +83,8 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
okButton = new wxButton(this, wxID_OK, "OK");
|
||||
wxButton* cancelButton = new wxButton(this, wxID_CANCEL, "Cancel");
|
||||
okButton = new wxButton(this, wxID_OK, _L("OK"));
|
||||
wxButton* cancelButton = new wxButton(this, wxID_CANCEL, _L("Cancel"));
|
||||
|
||||
wxBoxSizer* radioSizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
wxBoxSizer* btnSizer = new wxBoxSizer(wxHORIZONTAL);
|
||||
@@ -120,7 +120,7 @@ public:
|
||||
wxRadioButton* selectedRadio = dynamic_cast<wxRadioButton*>(event.GetEventObject());
|
||||
if (selectedRadio) {
|
||||
wxString label = selectedRadio->GetLabel();
|
||||
if (label == wxString("Project File")) {
|
||||
if (label == _L("Project File")) {
|
||||
projectsComboBox->Show();
|
||||
projectsLabel->Show();
|
||||
} else {
|
||||
@@ -182,8 +182,8 @@ public:
|
||||
SetForegroundColour(*wxBLACK);
|
||||
|
||||
auto* sizer = new wxBoxSizer(wxVERTICAL);
|
||||
sizer->Add(new wxStaticText(this, wxID_ANY, "Authorizing..."), 1, wxALL | wxCENTER, 10);
|
||||
auto* cancelBtn = new wxButton(this, wxID_CANCEL, "Cancel");
|
||||
sizer->Add(new wxStaticText(this, wxID_ANY, _L("Authorizing...")), 1, wxALL | wxCENTER, 10);
|
||||
auto* cancelBtn = new wxButton(this, wxID_CANCEL, _L("Cancel"));
|
||||
sizer->Add(cancelBtn, 0, wxALL | wxALIGN_CENTER, 10);
|
||||
SetSizerAndFit(sizer);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user