Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--resources/localization/cs/PrusaSlicer.mobin213385 -> 214536 bytes
-rw-r--r--resources/localization/cs/PrusaSlicer_cs.po14
-rw-r--r--resources/localization/de/PrusaSlicer.mobin220194 -> 221356 bytes
-rw-r--r--resources/localization/de/PrusaSlicer_de.po504
-rw-r--r--resources/localization/es/PrusaSlicer.mobin219276 -> 220455 bytes
-rw-r--r--resources/localization/es/PrusaSlicer_es.po496
-rw-r--r--resources/localization/fr/PrusaSlicer.mobin225092 -> 226308 bytes
-rw-r--r--resources/localization/fr/PrusaSlicer_fr.po8
-rw-r--r--resources/localization/it/PrusaSlicer.mobin216000 -> 217150 bytes
-rw-r--r--resources/localization/it/PrusaSlicer_it.po12
-rw-r--r--resources/localization/pl/PrusaSlicer.mobin214941 -> 216032 bytes
-rw-r--r--resources/localization/pl/PrusaSlicer_pl.po8
-rw-r--r--src/admesh/stlinit.cpp4
-rw-r--r--src/libslic3r/CMakeLists.txt2
-rw-r--r--src/libslic3r/GCode/Analyzer.cpp5
-rw-r--r--src/libslic3r/SLA/SLARaster.hpp13
-rw-r--r--src/libslic3r/SLA/SLARasterWriter.cpp107
-rw-r--r--src/libslic3r/SLA/SLARasterWriter.hpp109
-rw-r--r--src/libslic3r/SLAPrint.cpp76
-rw-r--r--src/libslic3r/SLAPrint.hpp14
-rw-r--r--src/libslic3r/Time.cpp (renamed from src/slic3r/Utils/Time.cpp)68
-rw-r--r--src/libslic3r/Time.hpp47
-rw-r--r--src/libslic3r/Utils.hpp4
-rw-r--r--src/libslic3r/utils.cpp14
-rw-r--r--src/slic3r/CMakeLists.txt2
-rw-r--r--src/slic3r/Config/Snapshot.cpp2
-rw-r--r--src/slic3r/GUI/ConfigSnapshotDialog.cpp2
-rw-r--r--src/slic3r/GUI/Plater.cpp3
-rw-r--r--src/slic3r/Utils/Time.hpp25
-rw-r--r--version.inc2
30 files changed, 636 insertions, 905 deletions
diff --git a/resources/localization/cs/PrusaSlicer.mo b/resources/localization/cs/PrusaSlicer.mo
index 9795baaf7..e19986620 100644
--- a/resources/localization/cs/PrusaSlicer.mo
+++ b/resources/localization/cs/PrusaSlicer.mo
Binary files differ
diff --git a/resources/localization/cs/PrusaSlicer_cs.po b/resources/localization/cs/PrusaSlicer_cs.po
index 3976915ba..e4e56d8b3 100644
--- a/resources/localization/cs/PrusaSlicer_cs.po
+++ b/resources/localization/cs/PrusaSlicer_cs.po
@@ -1771,6 +1771,10 @@ msgstr "Kompenzace rozplácnutí první vrstvy"
msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation."
msgstr "Vzdálenost od podložky je příliš nízká. Zvolte funkci \"Podložka okolo objektu\" pro tisk objektu bez nadzvednutí."
+#: src/libslic3r/SLAPrint.cpp:678
+msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation."
+msgstr "Nadzvednutí objektu je příliš malé. Pomocí funkce „Podložka okolo objektu“ můžete objekt vytisknout bez nadzvednutí nad podložku."
+
#: src/libslic3r/PrintConfig.cpp:1044
msgid "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals into the G-code to let the firmware show accurate remaining time. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode."
msgstr "Vkládání M73 P[počet vytištěných procent] R[zbývající čas v minutách] v 1 minutových intervalech do G-codu, aby firmware ukázal přesný zbývající čas. M73 nyní rozpoznává pouze firmware tiskárny Prusa i3 MK3. Firmware i3 MK3 také podporuje M73 Qxx Sxx pro tichý režim."
@@ -1970,7 +1974,7 @@ msgstr "Exportovat &G-code"
#: src/slic3r/GUI/MainFrame.cpp:488
msgid "Export &toolpaths as OBJ"
-msgstr "Exportovat ces&ty extruderu jako OBJ"
+msgstr "Exportovat tras&sy extruderu jako OBJ"
#: src/libslic3r/PrintConfig.cpp:2949
msgid "Export 3MF"
@@ -2083,7 +2087,7 @@ msgstr "Exportovat vybrané objekty jako STL soubor"
#: src/slic3r/GUI/MainFrame.cpp:488
msgid "Export toolpaths as OBJ"
-msgstr "Exportovat cesty extruderu jako OBJ"
+msgstr "Exportovat trasy extruderu jako OBJ"
#: src/libslic3r/Print.cpp:1517
msgid "Exporting G-code"
@@ -5877,7 +5881,7 @@ msgstr "Naslicuje model a exportuje SLA tiskové vrstvy jako PNG soubory."
#: src/libslic3r/PrintConfig.cpp:2965
msgid "Slice the model and export toolpaths as G-code."
-msgstr "Naslicujte model a exportujte cesty jako G-code."
+msgstr "Naslicujte model a exportujte trasy jako G-code."
#: src/libslic3r/PrintConfig.cpp:2971
msgid "Slice the model as FFF or SLA based on the printer_technology configuration value."
@@ -6649,6 +6653,10 @@ msgstr "Tento vlastní kód je vložen při každé změně vrstvy, hned po pohy
msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]."
msgstr "Tento vlastní kód je vložen pro každou změnu vrstvy, předtím než se pohne Z. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru stejně tak jako [layer_num] a [layer_z]."
+#: src/libslic3r/PrintConfig.cpp:2057
+msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange."
+msgstr "Tento vlastní kód je vložen při každé změně nástroje (extruderu). Lze používat zástupné proměnné pro všechna nastavení PrusaSliceru stejně jako {previous_extruder} a {next_extruder}. Když je použit příkaz pro výměnu extruderu, který mění na požadovaný extruder (jako je T {next_extruder}), PrusaSlicer nevytvoří žádný jiný takový příkaz. Je tedy možné skriptovat vlastní chování před i po výměně nástroje."
+
#: src/libslic3r/PrintConfig.cpp:380
msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order."
msgstr "Tento kód je vložen na konec výstupního souboru před tím, než tiskárna dokončí gcode (a před všechny změny extruderu z tohoto filamentu v případě multimateriálových tiskáren). Můžete přidávat zástupné proměnné pro veškeré nastavení PrusaSliceru. Pokud máte tiskárnu s více extrudery, G-code je zpracováván v pořadí extruderů."
diff --git a/resources/localization/de/PrusaSlicer.mo b/resources/localization/de/PrusaSlicer.mo
index 8c6c73d58..740f3f0e4 100644
--- a/resources/localization/de/PrusaSlicer.mo
+++ b/resources/localization/de/PrusaSlicer.mo
Binary files differ
diff --git a/resources/localization/de/PrusaSlicer_de.po b/resources/localization/de/PrusaSlicer_de.po
index 1d34bd01a..a0cd64007 100644
--- a/resources/localization/de/PrusaSlicer_de.po
+++ b/resources/localization/de/PrusaSlicer_de.po
@@ -5,28 +5,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.2.1\n"
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
+"X-Generator: PhraseApp (phraseapp.com)\n"
#: src/slic3r/GUI/PresetHints.cpp:39
-msgid ""
-"\n"
-"During the other layers, fan"
-msgstr ""
-"\n"
-"Während der übrigen Schichten, Lüfter"
+msgid "\nDuring the other layers, fan"
+msgstr "\nWährend der übrigen Schichten, Lüfter"
#: src/slic3r/GUI/PresetHints.cpp:35
-msgid ""
-"\n"
-"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%."
-msgstr ""
-"\n"
-"Falls die erwartete Schichtdruckzeit größer, aber noch unterhalb von ~%1%s ist, wird der Lüfter mit einer sich proportional verringernden Geschwindigkeit zwischen %2%%% und %3%%% laufen."
+msgid "\nIf estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%."
+msgstr "\nFalls die erwartete Schichtdruckzeit größer, aber noch unterhalb von ~%1%s ist, wird der Lüfter mit einer sich proportional verringernden Geschwindigkeit zwischen %2%%% und %3%%% laufen."
#: src/slic3r/GUI/MainFrame.cpp:61
msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases"
@@ -44,7 +31,7 @@ msgid "%"
msgstr "%"
#: src/libslic3r/GCode/PreviewData.cpp:504
-#, c-format
+#, possible-c-format
msgid "%.2f - %.2f mm"
msgstr "%.2f - %.2f mm"
@@ -66,105 +53,87 @@ msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm"
msgstr "%1%=%2% mm ist zu niedrig, um auf einer Schichthöhe von %3% mm druckbar zu sein"
#: src/slic3r/GUI/PresetHints.cpp:228
-#, c-format
+#, possible-c-format
msgid "%3.2f mm³/s at filament speed %3.2f mm/s."
msgstr "%3.2f mm³/s mit einer Filamentgeschwindigkeit von %3.2f mm/s."
#: src/slic3r/GUI/Plater.cpp:974
-#, c-format
+#, possible-c-format
msgid "%d (%d shells)"
msgstr "%d (%d Konturhüllen)"
#: src/slic3r/GUI/Plater.cpp:982
-#, c-format
+#, possible-c-format
msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges"
msgstr "%d degenerierte Flächen, %d Kanten korrigiert, %d Flächen entfernt, %d Flächen hinzugefügt, %d Flächen umgekehrt, %d rückwärtige Kanten"
#: src/slic3r/GUI/PresetHints.cpp:268
-#, c-format
+#, possible-c-format
msgid "%d lines: %.2f mm"
msgstr "%d Linien: %.2f mm"
#: src/slic3r/GUI/MainFrame.cpp:894
-#, c-format
+#, possible-c-format
msgid "%d presets successfully imported."
msgstr "%d Voreinstellungen erfolgreich importiert."
#: src/slic3r/GUI/MainFrame.cpp:550
-#, c-format
+#, possible-c-format
msgid "%s &Website"
msgstr "%s &Webseite"
#: src/slic3r/GUI/UpdateDialogs.cpp:113
-#, c-format
+#, possible-c-format
msgid "%s configuration is incompatible"
msgstr "%s Konfiguration ist nicht kompatibel"
#: src/slic3r/GUI/Field.cpp:136
-#, c-format
+#, possible-c-format
msgid "%s doesn't support percentage"
msgstr "%s akzeptiert keine Prozentangaben"
#: src/slic3r/GUI/MsgDialog.cpp:73
-#, c-format
+#, possible-c-format
msgid "%s error"
msgstr "%s Fehler"
#: src/slic3r/GUI/ConfigWizard.cpp:336
-#, c-format
+#, possible-c-format
msgid "%s Family"
msgstr "%s Familie"
#: src/slic3r/GUI/MsgDialog.cpp:74
-#, c-format
+#, possible-c-format
msgid "%s has encountered an error"
msgstr "%s ist auf einen Fehler gestoßen"
#: src/slic3r/GUI/GUI_App.cpp:132
-#, c-format
-msgid ""
-"%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n"
-"\n"
-"The application will now terminate."
-msgstr ""
-"%s ist auf einen Fehler gestoßen. Es wurde wahrscheinlich dadurch verursacht, dass der Speicher knapp wird. Wenn Sie sicher sind, dass Sie genügend RAM auf Ihrem System haben, kann dies auch ein Programmfehler sein, und wir würden uns freuen, wenn Sie ihn melden würden.\n"
-"\n"
-"Die Anwendung wird nun beendet."
+#, possible-c-format
+msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n\nThe application will now terminate."
+msgstr "%s ist auf einen Fehler gestoßen. Es wurde wahrscheinlich dadurch verursacht, dass der Speicher knapp wird. Wenn Sie sicher sind, dass Sie genügend RAM auf Ihrem System haben, kann dies auch ein Programmfehler sein, und wir würden uns freuen, wenn Sie ihn melden würden.\n\nDie Anwendung wird nun beendet."
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155
-#, c-format
+#, possible-c-format
msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it."
msgstr "%s ist auf einen Fehler gestoßen. Es wurde wahrscheinlich dadurch verursacht, dass der Speicher knapp wird. Wenn Sie sicher sind, dass Sie genügend RAM auf Ihrem System haben, kann dies auch ein Programmfehler sein, und wir würden uns freuen, wenn Sie ihn melden würden."
#: src/slic3r/GUI/UpdateDialogs.cpp:112
-#, c-format
+#, possible-c-format
msgid "%s incompatibility"
msgstr "%s-Inkompatibilität"
#: src/slic3r/GUI/UpdateDialogs.cpp:172
-#, c-format
-msgid ""
-"%s now uses an updated configuration structure.\n"
-"\n"
-"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n"
-"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n"
-"\n"
-"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates."
-msgstr ""
-"%s verwendet nun eine aktualisierte Konfigurationsstruktur.\n"
-"\n"
-"Sogenannte 'Systemeinstellungen' wurden eingeführt; diese enthalten die eingebauten Standardeinstellungen für verschiedene Drucker. Diese Systemeinstellungen können nicht verändert werden. Stattdessen können Benutzer nun ihre eigenen Voreinstellungen erstellen, die Werte von einer der Systemeinstellungen übernehmen.\n"
-"Eine übernehmende Voreinstellung kann entweder einen bestimmten Wert von ihrem Vorbild übernehmen, oder ihn mit einem eigenen Wert überschreiben.\n"
-"\n"
-"Bitte fahren Sie fort mit '%s'. Dies folgt nun, um die neuen Einstellungen einzurichten sowie auszuwählen, ob Einstellungen automatisch aktualisiert werden dürfen."
+#, possible-c-format
+msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates."
+msgstr "%s verwendet nun eine aktualisierte Konfigurationsstruktur.\n\nSogenannte 'Systemeinstellungen' wurden eingeführt; diese enthalten die eingebauten Standardeinstellungen für verschiedene Drucker. Diese Systemeinstellungen können nicht verändert werden. Stattdessen können Benutzer nun ihre eigenen Voreinstellungen erstellen, die Werte von einer der Systemeinstellungen übernehmen.\nEine übernehmende Voreinstellung kann entweder einen bestimmten Wert von ihrem Vorbild übernehmen, oder ihn mit einem eigenen Wert überschreiben.\n\nBitte fahren Sie fort mit '%s'. Dies folgt nun, um die neuen Einstellungen einzurichten sowie auszuwählen, ob Einstellungen automatisch aktualisiert werden dürfen."
#: src/slic3r/GUI/GUI_App.cpp:681
-#, c-format
+#, possible-c-format
msgid "%s View Mode"
msgstr "%s Anzeigemodus"
#: src/slic3r/GUI/MainFrame.cpp:563
-#, c-format
+#, possible-c-format
msgid "&About %s"
msgstr "Über %s (&A)"
@@ -305,7 +274,7 @@ msgid "3D Honeycomb"
msgstr "3D Bienenwabe"
#: src/slic3r/GUI/Plater.cpp:3590
-#, c-format
+#, possible-c-format
msgid "3MF file exported to %s"
msgstr "3MF Datei exportiert nach %s"
@@ -334,12 +303,12 @@ msgid "A toolpath outside the print area was detected"
msgstr "Ein Werkzeugweg außerhalb des Druckbereichs wurde erkannt"
#: src/slic3r/GUI/AboutDialog.cpp:35
-#, c-format
+#, possible-c-format
msgid "About %s"
msgstr "Über %s"
#: src/libslic3r/GCode/PreviewData.cpp:499
-#, c-format
+#, possible-c-format
msgid "above %.2f mm"
msgstr "oberhalb %.2f mm"
@@ -573,17 +542,13 @@ msgid "Alternate nozzles:"
msgstr "Alternative Düsen:"
#: src/slic3r/GUI/Plater.cpp:3561
-#, c-format
+#, possible-c-format
msgid "AMF file exported to %s"
msgstr "AMF Datei exportiert nach %s"
#: src/slic3r/GUI/GLCanvas3D.cpp:725
-msgid ""
-"An object outside the print area was detected\n"
-"Resolve the current problem to continue slicing"
-msgstr ""
-"Ein Objekt außerhalb des Druckbereichs wurde erkannt.\n"
-"Beheben Sie das aktuelle Problem, um mit dem Slicen fortzufahren"
+msgid "An object outside the print area was detected\nResolve the current problem to continue slicing"
+msgstr "Ein Objekt außerhalb des Druckbereichs wurde erkannt.\nBeheben Sie das aktuelle Problem, um mit dem Slicen fortzufahren"
#: src/slic3r/GUI/GLCanvas3D.cpp:720
msgid "An object outside the print area was detected"
@@ -632,9 +597,7 @@ msgid "Are you sure you want to %1% the selected preset?"
msgstr "Sind Sie sicher, dass Sie die gewählte Voreinstellung %1% möchten?"
#: src/slic3r/GUI/FirmwareDialog.cpp:862
-msgid ""
-"Are you sure you want to cancel firmware flashing?\n"
-"This could leave your printer in an unusable state!"
+msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!"
msgstr "Sind Sie sicher, dass Sie das Flashen der Firmware abbrechen wollen? Dies könnte Ihren Drucker in einen unbrauchbaren Zustand versetzen!"
#: src/libslic3r/PrintConfig.cpp:2258
@@ -710,12 +673,12 @@ msgid "Auto-generate points"
msgstr "Punkte automatisch generieren"
#: src/slic3r/GUI/Plater.cpp:979
-#, c-format
+#, possible-c-format
msgid "Auto-repaired (%d errors)"
msgstr "Auto-Reparatur (%d Fehler)"
#: src/slic3r/GUI/GUI_ObjectList.cpp:230
-#, c-format
+#, possible-c-format
msgid "Auto-repaired (%d errors):\n"
msgstr "Auto-Reparatur (%d Fehler):\n"
@@ -728,14 +691,8 @@ msgid "Autogenerate support points"
msgstr "Stützpunkte automatisch generieren"
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166
-msgid ""
-"Autogeneration will erase all manually edited points.\n"
-"\n"
-"Are you sure you want to do it?\n"
-msgstr ""
-"Die automatische Generierung löscht alle manuell bearbeiteten Punkte.\n"
-"\n"
-"Sind Sie sicher, dass Sie das wirklich tun wollen?\n"
+msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n"
+msgstr "Die automatische Generierung löscht alle manuell bearbeiteten Punkte.\n\nSind Sie sicher, dass Sie das wirklich tun wollen?\n"
#: src/slic3r/GUI/Tab.cpp:3421
msgid "Automatic generation"
@@ -762,18 +719,12 @@ msgid "BACK ARROW"
msgstr "PFEIL ZURÜCK"
#: src/slic3r/GUI/Tab.cpp:3113
-msgid ""
-"BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n"
-"Click to reset all settings for the current option group to the last saved preset."
+msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset."
msgstr "Das Symbol PFEIL ZURÜCK zeigt an, dass die Einstellungen geändert wurden und nicht mit dem zuletzt gespeicherten Preset für die aktuelle Optionsgruppe übereinstimmen. Klicken Sie hier, um alle Einstellungen für die aktuelle Optionsgruppe auf das zuletzt gespeicherte Preset zurückzusetzen."
#: src/slic3r/GUI/Tab.cpp:3127
-msgid ""
-"BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\n"
-"Click to reset current value to the last saved preset."
-msgstr ""
-"Das Symbol PFEIL ZURÜCK zeigt an, dass der Wert geändert wurde und nicht mit dem zuletzt gespeicherten Preset übereinstimmt. \n"
-"Klicken Sie, um den aktuellen Wert auf das zuletzt gespeicherte Preset zurückzusetzen."
+msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset."
+msgstr "Das Symbol PFEIL ZURÜCK zeigt an, dass der Wert geändert wurde und nicht mit dem zuletzt gespeicherten Preset übereinstimmt. \nKlicken Sie, um den aktuellen Wert auf das zuletzt gespeicherte Preset zurückzusetzen."
#: src/slic3r/GUI/Preferences.cpp:52
msgid "Background processing"
@@ -997,7 +948,7 @@ msgid "Change extruder"
msgstr "Wechsel Extruder"
#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144
-#, c-format
+#, possible-c-format
msgid "Change Option %s"
msgstr "Ändere Option %s"
@@ -1338,7 +1289,7 @@ msgid "Cubic"
msgstr "Kubisch"
#: src/slic3r/GUI/wxExtensions.cpp:2413
-#, c-format
+#, possible-c-format
msgid "Current mode is %s"
msgstr "Aktueller Modus ist %s"
@@ -1347,13 +1298,9 @@ msgid "Current preset is inherited from the default preset."
msgstr "Aktuelle Voreinstellung ist abgeleitet von der Standardvoreinstellung."
#: src/slic3r/GUI/Tab.cpp:928
-#, c-format
-msgid ""
-"Current preset is inherited from:\n"
-"\t%s"
-msgstr ""
-"Aktuelle Voreinstellung ist abgeleitet von:\n"
-"%s"
+#, possible-c-format
+msgid "Current preset is inherited from:\n\t%s"
+msgstr "Aktuelle Voreinstellung ist abgeleitet von:\n%s"
#: src/slic3r/GUI/UpdateDialogs.cpp:45
msgid "Current version:"
@@ -1446,7 +1393,7 @@ msgid "Default filament profile associated with the current printer profile. On
msgstr "Standard-Filamentprofil, das dem aktuellen Druckerprofil zugeordnet ist. Bei Auswahl des aktuellen Druckerprofils wird dieses Filamentprofil aktiviert."
#: src/slic3r/GUI/Tab.cpp:2757
-#, c-format
+#, possible-c-format
msgid "Default preset (%s)"
msgstr "Standard Voreinstellung(%s)"
@@ -1541,7 +1488,7 @@ msgid "Delete Object"
msgstr "Objekt löschen"
#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100
-#, c-format
+#, possible-c-format
msgid "Delete Option %s"
msgstr "Lösche Option %s"
@@ -1749,15 +1696,9 @@ msgid "Do not rearrange the given models before merging and keep their original
msgstr "Die angegebenen Modelle werden vor dem Zusammenführen nicht neu angeordnet und behalten ihre ursprünglichen XY-Koordinaten."
#: src/slic3r/GUI/Field.cpp:206
-#, c-format
-msgid ""
-"Do you mean %s%% instead of %s %s?\n"
-"Select YES if you want to change this value to %s%%, \n"
-"or NO if you are sure that %s %s is a correct value."
-msgstr ""
-"Meinen Sie%s anstelle von %s %s?\n"
-"Wählen Sie JA, wenn Sie diesen Wert auf %s%% ändern möchten, \n"
-"oder NEIN, wenn Sie sicher sind, dass %s %s ein korrekter Wert ist."
+#, possible-c-format
+msgid "Do you mean %s%% instead of %s %s?\nSelect YES if you want to change this value to %s%%, \nor NO if you are sure that %s %s is a correct value."
+msgstr "Meinen Sie%s anstelle von %s %s?\nWählen Sie JA, wenn Sie diesen Wert auf %s%% ändern möchten, \noder NEIN, wenn Sie sicher sind, dass %s %s ein korrekter Wert ist."
#: src/slic3r/GUI/GUI_App.cpp:754
msgid "Do you want to proceed?"
@@ -1830,6 +1771,10 @@ msgstr "Elefantenfuss Kompensation"
msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation."
msgstr "Die Höhe ist zu niedrig für das Objekt. Verwenden Sie die Funktion \"Grundschicht um Object\", um das Objekt ohne Erhöhung zu drucken."
+#: src/libslic3r/SLAPrint.cpp:678
+msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation."
+msgstr "Die Erhöhung ist zu niedrig für das Objekt. Verwenden Sie die Funktion \"Grundschicht um Object\", um das Objekt ohne Erhöhung zu drucken."
+
#: src/libslic3r/PrintConfig.cpp:1044
msgid "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals into the G-code to let the firmware show accurate remaining time. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode."
msgstr "Schreibt M73 P[Prozent gedruckt] R[Restzeit in Minuten] im Abstand von 1 Minute in den G-Code, damit die Firmware die genaue Restzeit anzeigt. Ab sofort erkennt nur noch die Prusa i3 MK3 Firmware das M73. Die i3 MK3 Firmware unterstützt auch das M73 Qxx Sxx für den Silent Mode."
@@ -1930,17 +1875,17 @@ msgid "Error"
msgstr "Fehler"
#: src/slic3r/GUI/FirmwareDialog.cpp:608
-#, c-format
+#, possible-c-format
msgid "Error accessing port at %s: %s"
msgstr "Fehler beim Zugriff auf Port bei %s:%s"
#: src/slic3r/GUI/Plater.cpp:3593
-#, c-format
+#, possible-c-format
msgid "Error exporting 3MF file %s"
msgstr "Fehler beim Exportieren der 3MF Datei %s"
#: src/slic3r/GUI/Plater.cpp:3564
-#, c-format
+#, possible-c-format
msgid "Error exporting AMF file %s"
msgstr "Fehler beim Exportieren der AMF Datei %s"
@@ -1965,7 +1910,7 @@ msgid "Error! Invalid model"
msgstr "Fehler! Ungültiges Modell"
#: src/slic3r/GUI/FirmwareDialog.cpp:610
-#, c-format
+#, possible-c-format
msgid "Error: %s"
msgstr "Fehler: %s"
@@ -1992,10 +1937,10 @@ msgstr "außer für die erste Schicht."
#: src/libslic3r/Print.cpp:1285
msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm"
-msgstr "Übermäßig %1%=%2% mm, um mit einem Düsendurchmesser von %3% mm druckbar zu sein."
+msgstr "Übermäßig %1%=%2% mm, um mit einem Düsendurchmesser von %3% mm druckbar zu sein"
#: src/slic3r/GUI/UpdateDialogs.cpp:148
-#, c-format
+#, possible-c-format
msgid "Exit %s"
msgstr "%s beenden"
@@ -2203,7 +2148,7 @@ msgid "Extruder"
msgstr "Extruder"
#: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475
-#, c-format
+#, possible-c-format
msgid "Extruder %d"
msgstr "Extruder %d"
@@ -2558,12 +2503,8 @@ msgstr "Nur für Stützverstärker"
#. TRN Description for "WHITE BULLET"
#: src/slic3r/GUI/Tab.cpp:3345
-msgid ""
-"for the left button: \tindicates a non-system (or non-default) preset,\n"
-"for the right button: \tindicates that the settings hasn't been modified."
-msgstr ""
-"Beim linken Knopf: zeigt eine Nicht-System- (oder Nicht-Standard-) Einstellung an.\n"
-"Beim rechten Knopf: zeigt an, dass die Einstellung nicht geändert wurde."
+msgid "for the left button: \tindicates a non-system (or non-default) preset,\nfor the right button: \tindicates that the settings hasn't been modified."
+msgstr "Beim linken Knopf: zeigt eine Nicht-System- (oder Nicht-Standard-) Einstellung an.\nBeim rechten Knopf: zeigt an, dass die Einstellung nicht geändert wurde."
#: src/libslic3r/Print.cpp:1302
msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers."
@@ -2776,7 +2717,7 @@ msgid "Heights at which a filament change is to occur."
msgstr "Höhen, bei denen eine Filamentwechsel stattfinden soll."
#: src/slic3r/GUI/ConfigWizard.cpp:300
-#, c-format
+#, possible-c-format
msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print."
msgstr "Hallo, willkommen bei %s! Dieses %s hilft Ihnen bei der Erstkonfiguration; nur ein paar Einstellungen und Sie sind bereit zum Drucken."
@@ -2837,12 +2778,8 @@ msgid "Hostname, IP or URL"
msgstr "Hostname, IP oder URL"
#: src/slic3r/GUI/Tab.cpp:136
-msgid ""
-"Hover the cursor over buttons to find more information \n"
-"or click this button."
-msgstr ""
-"Bewegen Sie den Mauszeiger über die Schaltflächen, um weitere Informationen zu erhalten,\n"
-"oder klicken Sie auf diese Schaltfläche."
+msgid "Hover the cursor over buttons to find more information \nor click this button."
+msgstr "Bewegen Sie den Mauszeiger über die Schaltflächen, um weitere Informationen zu erhalten,\noder klicken Sie auf diese Schaltfläche."
#: src/libslic3r/PrintConfig.cpp:2734
msgid "How much should the tiny connectors penetrate into the model body."
@@ -2865,14 +2802,9 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self
msgstr "HTTPS-CA-Datei ist optional. Sie wird nur benötigt, wenn Sie HTTPS mit einem selbstsignierten Zertifikat verwenden."
#: src/slic3r/GUI/Tab.cpp:1773
-#, c-format
-msgid ""
-"HTTPS CA File:\n"
-" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n"
-" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain."
-msgstr ""
-"HTTPS CA-Datei:\n"
-"Auf diesem System verwendet %s HTTPS-Zertifikate aus dem System Zertifikatsspeicher oder Schlüsselbund. Um eine benutzerdefinierte CA-Datei zu verwenden, importieren Sie bitte Ihre CA-Datei in den Zertifikatsspeicher / Schlüsselbund."
+#, possible-c-format
+msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain."
+msgstr "HTTPS CA-Datei:\nAuf diesem System verwendet %s HTTPS-Zertifikate aus dem System Zertifikatsspeicher oder Schlüsselbund. Um eine benutzerdefinierte CA-Datei zu verwenden, importieren Sie bitte Ihre CA-Datei in den Zertifikatsspeicher / Schlüsselbund."
#: src/slic3r/GUI/Preferences.cpp:192
msgid "Icon size in a respect to the default size"
@@ -2887,12 +2819,12 @@ msgid "If checked, supports will be generated automatically based on the overhan
msgstr "Wenn dieses Kontrollkästchen aktiviert ist, werden Stützstrukturen automatisch basierend auf dem Schwellenwert für den Überhang generiert. Wenn diese Option nicht aktiviert ist, werden Stützen nur innerhalb der Volumen der \"Stützverstärker\" generiert."
#: src/slic3r/GUI/ConfigWizard.cpp:413
-#, c-format
+#, possible-c-format
msgid "If enabled, %s checks for new application versions 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."
msgstr "Falls aktiviert, sucht %s online nach neuen Versionen der Anwendung. Falls eine neue Version verfügbar ist, wird eine Mitteilung beim nächsten Programmstart angezeigt (aber nie während der Programmausführung). Dies dient nur der Mitteilung; es findet keine automatische Installation statt."
#: src/slic3r/GUI/ConfigWizard.cpp:423
-#, c-format
+#, possible-c-format
msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup."
msgstr "Wenn aktiviert, lädt %s Updates der eingebauten Systemvoreinstellungen im Hintergrund herunter. Diese Updates werden in einen separaten temporären Speicherort heruntergeladen. Wenn eine neue Voreinstellungsversion verfügbar wird, wird sie beim Programmstart angeboten."
@@ -3013,7 +2945,7 @@ msgid "Import STL/OBJ/AMF/3MF without config, keep bed"
msgstr "Importe STL/OBJ/AMF/3MF ohne Konfigurationsdaten, behalte Bett bei"
#: src/slic3r/GUI/GUI_ObjectList.cpp:2416
-#, c-format
+#, possible-c-format
msgid "In this mode you can select only other %s Items%s"
msgstr "In diesem Modus wählen Sie nur andere %s Elemente%s"
@@ -3022,7 +2954,7 @@ msgid "Incompatible bundles:"
msgstr "Inkompatible Konfigurationssammlungen:"
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70
-#, c-format
+#, possible-c-format
msgid "Incompatible with this %s"
msgstr "Nicht kompatibel mit diesem %s"
@@ -3032,12 +2964,8 @@ msgstr "Kopien erhöhen"
#. TRN Description for "UNLOCKED LOCK"
#: src/slic3r/GUI/Tab.cpp:3338
-msgid ""
-"indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\n"
-"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values."
-msgstr ""
-"zeigt an, dass einige Einstellungen geändert wurden und nicht mit den System- (oder Standard-) Werten für die aktuelle Optionsgruppe übereinstimmen.\n"
-"Klicken Sie auf das Symbol GEÖFFNETES SCHLOSS, um alle Einstellungen für die aktuelle Optionsgruppe auf die System- (oder Standard-) Werte zurückzusetzen."
+msgid "indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values."
+msgstr "zeigt an, dass einige Einstellungen geändert wurden und nicht mit den System- (oder Standard-) Werten für die aktuelle Optionsgruppe übereinstimmen.\nKlicken Sie auf das Symbol GEÖFFNETES SCHLOSS, um alle Einstellungen für die aktuelle Optionsgruppe auf die System- (oder Standard-) Werte zurückzusetzen."
#. TRN Description for "LOCKED LOCK"
#: src/slic3r/GUI/Tab.cpp:3334
@@ -3046,12 +2974,8 @@ msgstr "zeigt an, dass die Einstellungen mit den System- (oder Standard-) Werten
#. TRN Description for "BACK ARROW"
#: src/slic3r/GUI/Tab.cpp:3083
-msgid ""
-"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n"
-"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset."
-msgstr ""
-"zeigt an, dass die Einstellungen geändert wurden und nicht mit dem zuletzt gespeicherten Preset für die aktuelle Optionsgruppe übereinstimmen. \n"
-"Klicken Sie auf das Symbol PFEIL ZURÜCK, um alle Einstellungen für die aktuelle Optionsgruppe auf das zuletzt gespeicherte Preset zurückzusetzen."
+msgid "indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset."
+msgstr "zeigt an, dass die Einstellungen geändert wurden und nicht mit dem zuletzt gespeicherten Preset für die aktuelle Optionsgruppe übereinstimmen. \nKlicken Sie auf das Symbol PFEIL ZURÜCK, um alle Einstellungen für die aktuelle Optionsgruppe auf das zuletzt gespeicherte Preset zurückzusetzen."
#: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69
#: src/slic3r/GUI/GUI_ObjectList.cpp:510 src/slic3r/GUI/Plater.cpp:439
@@ -3116,7 +3040,7 @@ msgid "Inspect / activate configuration snapshots"
msgstr "Inspiziere / aktiviere Konfigurations-Momentaufnahmen"
#: src/slic3r/GUI/wxExtensions.cpp:407 src/slic3r/GUI/wxExtensions.cpp:474
-#, c-format
+#, possible-c-format
msgid "Instance %d"
msgstr "Kopie %d"
@@ -3354,7 +3278,7 @@ msgstr "Länge des Kühlschlauchs, um den Raum für Kühlbewegungen im Inneren z
#. TRN "Slic3r _is licensed under the_ License"
#: src/slic3r/GUI/AboutDialog.cpp:124
msgid "License agreements of all following programs (libraries) are part of application license agreement"
-msgstr "Lizenzvereinbarungen für alle folgenden Programme (Bibliotheken) sind Teil der Anwendungslizenzvereinbarung."
+msgstr "Lizenzvereinbarungen für alle folgenden Programme (Bibliotheken) sind Teil der Anwendungslizenzvereinbarung"
#: src/libslic3r/PrintConfig.cpp:1491
msgid "Lift Z"
@@ -3832,7 +3756,7 @@ msgid "Mirror vertically"
msgstr "Vertikal spiegeln"
#: src/slic3r/Utils/OctoPrint.cpp:69
-#, c-format
+#, possible-c-format
msgid "Mismatched type of print host: %s"
msgstr "Nicht übereinstimmender Typ des Druckhosts: %s"
@@ -4017,7 +3941,7 @@ msgid "Multi-part object detected"
msgstr "Objekt mit mehreren Teilen erkannt"
#: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436
-#, c-format
+#, possible-c-format
msgid "Multiple %s devices found. Please only connect one at a time for flashing."
msgstr "Mehrere %s Geräte gefunden. Bitte immer nur eins zum Flashen anschliessen."
@@ -4026,14 +3950,8 @@ msgid "Multiple Extruders"
msgstr "Mehrere Extruder"
#: src/slic3r/GUI/Plater.cpp:1766
-msgid ""
-"Multiple objects were loaded for a multi-material printer.\n"
-"Instead of considering them as multiple objects, should I consider\n"
-"these files to represent a single object having multiple parts?\n"
-msgstr ""
-"Für einen Multimaterialdrucker wurden mehrere Objekte geladen.\n"
-"Soll ich, anstatt sie als mehrere Objekte zu betrachten, \n"
-"diese Dateien als ein einzelnes Objekt mit mehreren Teilen behandeln?\n"
+msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n"
+msgstr "Für einen Multimaterialdrucker wurden mehrere Objekte geladen.\nSoll ich, anstatt sie als mehrere Objekte zu betrachten, \ndiese Dateien als ein einzelnes Objekt mit mehreren Teilen behandeln?\n"
#: src/libslic3r/PrintConfig.cpp:3050
msgid "Multiply copies by creating a grid."
@@ -4076,7 +3994,7 @@ msgid "New Project"
msgstr "Neues Projekt"
#: src/slic3r/GUI/UpdateDialogs.cpp:30
-#, c-format
+#, possible-c-format
msgid "New version of %s is available"
msgstr "Eine neue Version von %s ist verfügbar"
@@ -4322,7 +4240,7 @@ msgid "Open project STL/OBJ/AMF/3MF with config, delete bed"
msgstr "Öffne Konfiguration aus Projekt STL/OBJ/AMF/3MF, lösche Druckbett"
#: src/slic3r/GUI/MainFrame.cpp:551
-#, c-format
+#, possible-c-format
msgid "Open the %s website in your browser"
msgstr "%s-Website in Ihrem Browser öffnen"
@@ -4533,7 +4451,7 @@ msgid "Perimeters"
msgstr "Konturen"
#: src/slic3r/GUI/ConfigWizard.cpp:440
-#, c-format
+#, possible-c-format
msgid "Pick another vendor supported by %s:"
msgstr "Wählen Sie einen anderen von %s unterstützten Hersteller:"
@@ -4619,42 +4537,26 @@ msgid "Preparing infill"
msgstr "Infill wird vorbereitet"
#: src/slic3r/GUI/Tab.cpp:2758
-#, c-format
+#, possible-c-format
msgid "Preset (%s)"
msgstr "Voreinstellung (%s)"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:147
-msgid ""
-"Press to activate deselection rectangle\n"
-"or to scale or rotate selected objects\n"
-"around their own center"
-msgstr ""
-"Drücken um das Abwahlrechteck zu aktivieren\n"
-"oder um gewählte Objekte zu skalieren oder\n"
-"um die eigene Mitte zu drehen"
+msgid "Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center"
+msgstr "Drücken um das Abwahlrechteck zu aktivieren\noder um gewählte Objekte zu skalieren oder\num die eigene Mitte zu drehen"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:148
msgid "Press to activate one direction scaling in Gizmo scale"
msgstr "Drücken um Eine-Richtungs-Skalierung im Skalierungsgizmo zu aktivieren"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:146
-#, c-format
-msgid ""
-"Press to activate selection rectangle\n"
-"or to snap by 5% in Gizmo scale\n"
-"or to snap by 1mm in Gizmo move"
-msgstr ""
-"Drücken um Auswahlrechteck zu aktivieren\n"
-"oder mit 5% bei der Gizmo Skalierung zu rasten\n"
-"oder mit 1 mm bei der Gizmo Bewegung"
+#, possible-c-format
+msgid "Press to activate selection rectangle\nor to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move"
+msgstr "Drücken um Auswahlrechteck zu aktivieren\noder mit 5% bei der Gizmo Skalierung zu rasten\noder mit 1 mm bei der Gizmo Bewegung"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:147
-msgid ""
-"Press to scale selection to fit print volume\n"
-"in Gizmo scale"
-msgstr ""
-"Drücken, um die Auswahl passend zum\n"
-"Druckvolumen in der Gizmo Skalierung anzupassen"
+msgid "Press to scale selection to fit print volume\nin Gizmo scale"
+msgstr "Drücken, um die Auswahl passend zum\nDruckvolumen in der Gizmo Skalierung anzupassen"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:127
msgid "Press to select multiple object or move multiple object with mouse"
@@ -4776,12 +4678,12 @@ msgstr "Der Druck erfolgt mit mehreren Extrudern mit unterschiedlichen Düsendur
#. TRN "Processing input_file_basename"
#: src/slic3r/GUI/MainFrame.cpp:715
-#, c-format
+#, possible-c-format
msgid "Processing %s"
msgstr "Berechne %s"
#: src/slic3r/GUI/Plater.cpp:1600
-#, c-format
+#, possible-c-format
msgid "Processing input file %s\n"
msgstr "Eingabe Datei %s wird verarbeitet\n"
@@ -4820,10 +4722,8 @@ msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap co
msgstr "PrusaSlicer basiert auf Slic3r von Alessandro Ranellucci und der RepRap Community."
#: src/slic3r/GUI/GUI_App.cpp:297
-#, c-format
-msgid ""
-"PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \n"
-"while OpenGL version %s, render %s, vendor %s was detected."
+#, possible-c-format
+msgid "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \nwhile OpenGL version %s, render %s, vendor %s was detected."
msgstr "PrusaSlicer benötigt einen OpenGL 2.0-fähigen Grafiktreiber, um korrekt zu laufen, während die OpenGL-Version %s, Render %s, Hersteller %s erkannt wurde."
#: src/libslic3r/PrintConfig.cpp:2153
@@ -4849,7 +4749,7 @@ msgstr "Qualität (langsameres Slicen)"
#: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139
#: src/slic3r/GUI/GUI_ObjectList.cpp:1145
#: src/slic3r/GUI/GUI_ObjectList.cpp:1377
-#, c-format
+#, possible-c-format
msgid "Quick Add Settings (%s)"
msgstr "Schnelles Einstellen (%s)"
@@ -4862,7 +4762,7 @@ msgid "Quick Slice and Save As"
msgstr "Quick Slice und Speichern unter"
#: src/slic3r/GUI/MainFrame.cpp:409
-#, c-format
+#, possible-c-format
msgid "Quit %s"
msgstr "%s verlassen"
@@ -4883,14 +4783,8 @@ msgid "Ramming customization"
msgstr "Einstellungen für das Rammen"
#: src/slic3r/GUI/WipeTowerDialog.cpp:40
-msgid ""
-"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n"
-"\n"
-"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc."
-msgstr ""
-"Rammen steht für die beschleunigte Extrusion unmittelbar vor einem Werkzeugwechsel in einem MM-Drucker mit einem Extruder. Der Zweck ist, die Spitze des entladenen Filaments geeignet zu formen, damit es das Laden des neuen Filaments nicht behindert und später selber wieder eingeführt werden kann. Diese Phase ist wichtig und verschiedene Materialien können unterschiedliche Extrusionsgeschwindigkeiten benötigen, um die richtige Form zu erzielen. Aus diesem Grund können die Extrusionsraten für das Rammen angepasst werden.\n"
-"\n"
-"Dies ist eine Einstellung für fortgeschrittene Benutzer. Falsche Anpassungen werden sehr wahrscheinlich zu Verstopfungen führen oder dazu, dass die Zähne der Extruderwelle ins Filament einschneiden usw."
+msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc."
+msgstr "Rammen steht für die beschleunigte Extrusion unmittelbar vor einem Werkzeugwechsel in einem MM-Drucker mit einem Extruder. Der Zweck ist, die Spitze des entladenen Filaments geeignet zu formen, damit es das Laden des neuen Filaments nicht behindert und später selber wieder eingeführt werden kann. Diese Phase ist wichtig und verschiedene Materialien können unterschiedliche Extrusionsgeschwindigkeiten benötigen, um die richtige Form zu erzielen. Aus diesem Grund können die Extrusionsraten für das Rammen angepasst werden.\n\nDies ist eine Einstellung für fortgeschrittene Benutzer. Falsche Anpassungen werden sehr wahrscheinlich zu Verstopfungen führen oder dazu, dass die Zähne der Extruderwelle ins Filament einschneiden usw."
#: src/slic3r/GUI/WipeTowerDialog.cpp:90
msgid "Ramming line spacing"
@@ -4945,7 +4839,7 @@ msgid "Recent projects"
msgstr "Letzte Projekte"
#: src/slic3r/GUI/PresetHints.cpp:262
-#, c-format
+#, possible-c-format
msgid "Recommended object thin wall thickness for layer height %.2f and"
msgstr "Empfohlene Stärke der dünnen Wände des Objekts für die Schichthöhe %.2f und"
@@ -4976,7 +4870,7 @@ msgid "Redo"
msgstr "Redo"
#: src/slic3r/GUI/GLCanvas3D.cpp:3497
-#, c-format
+#, possible-c-format
msgid "Redo %1$d Action"
msgid_plural "Redo %1$d Actions"
msgstr[0] "Redo %1$d Aktion"
@@ -5117,22 +5011,22 @@ msgid "Report an I&ssue"
msgstr "E&in Problem melden"
#: src/slic3r/GUI/MainFrame.cpp:561
-#, c-format
+#, possible-c-format
msgid "Report an issue on %s"
msgstr "Einen Problem melden über %s"
#: src/slic3r/Utils/PresetUpdater.cpp:590
-#, c-format
+#, possible-c-format
msgid "requires max. %s"
msgstr "benötigt max. %s"
#: src/slic3r/Utils/PresetUpdater.cpp:588
-#, c-format
+#, possible-c-format
msgid "requires min. %s"
msgstr "benötigt min. %s"
#: src/slic3r/Utils/PresetUpdater.cpp:583
-#, c-format
+#, possible-c-format
msgid "requires min. %s and max. %s"
msgstr "benötigt min. %s und max. %s"
@@ -5278,7 +5172,7 @@ msgid "Rotation angle around the Z axis in degrees."
msgstr "Rotationswinkel um die Z-Achse in Grad."
#: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658
-#, c-format
+#, possible-c-format
msgid "Run %s"
msgstr "%s ausführen"
@@ -5305,12 +5199,12 @@ msgstr "Zum Drucken s&enden"
#. TRN Preset
#: src/slic3r/GUI/Tab.cpp:3264
-#, c-format
+#, possible-c-format
msgid "Save %s as:"
msgstr "Speichere %s als:"
#: src/slic3r/GUI/MainFrame.cpp:686
-#, c-format
+#, possible-c-format
msgid "Save %s file as:"
msgstr "Speichere %s Datei als:"
@@ -5332,7 +5226,7 @@ msgstr "Sichert die Konfiguration in der angegebenen Datei."
#. TRN "Save current Settings"
#: src/slic3r/GUI/Tab.cpp:133
-#, c-format
+#, possible-c-format
msgid "Save current %s"
msgstr "Speichere aktuelle %s"
@@ -5656,7 +5550,7 @@ msgid "Set number of instances"
msgstr "Setze Anzahl der Kopien"
#: src/slic3r/GUI/Plater.cpp:4163
-#, c-format
+#, possible-c-format
msgid "Set numbers of copies to %d"
msgstr "Setze Anzahl der Kopien auf %d"
@@ -5861,14 +5755,8 @@ msgid "Single Extruder Multi Material"
msgstr "Einzelner Extruder mit Multi-Material"
#: src/slic3r/GUI/Tab.cpp:2023
-msgid ""
-"Single Extruder Multi Material is selected, \n"
-"and all extruders must have the same diameter.\n"
-"Do you want to change the diameter for all extruders to first extruder nozzle diameter value?"
-msgstr ""
-"Einzel-Extruder Multi-Material ist ausgewählt, \n"
-"und alle Extruder müssen den gleichen Durchmesser haben.\n"
-"Möchten Sie den Durchmesser für alle Extruder auf den Wert des ersten Extruderdüsendurchmessers ändern?"
+msgid "Single Extruder Multi Material is selected, \nand all extruders must have the same diameter.\nDo you want to change the diameter for all extruders to first extruder nozzle diameter value?"
+msgstr "Einzel-Extruder Multi-Material ist ausgewählt, \nund alle Extruder müssen den gleichen Durchmesser haben.\nMöchten Sie den Durchmesser für alle Extruder auf den Wert des ersten Extruderdüsendurchmessers ändern?"
#: src/slic3r/GUI/Tab.cpp:2240
msgid "Single extruder multimaterial parameters"
@@ -6291,7 +6179,7 @@ msgid "stealth mode"
msgstr "Stealth Modus"
#: src/slic3r/GUI/Plater.cpp:3545
-#, c-format
+#, possible-c-format
msgid "STL file exported to %s"
msgstr "Die STL-Datei wurde exportiert zu %s"
@@ -6460,27 +6348,17 @@ msgid "Switch to Preview"
msgstr "Wechseln zur Vorschau"
#: src/slic3r/GUI/wxExtensions.cpp:2412
-#, c-format
+#, possible-c-format
msgid "Switch to the %s mode"
msgstr "Wechseln zum %s Modus"
#: src/slic3r/GUI/GUI_App.cpp:752
-msgid ""
-"Switching the language will trigger application restart.\n"
-"You will lose content of the plater."
-msgstr ""
-"Das Umschalten der Sprache löst einen Neustart der Anwendung aus.\n"
-"Sie verlieren den Inhalt der Druckplatte."
+msgid "Switching the language will trigger application restart.\nYou will lose content of the plater."
+msgstr "Das Umschalten der Sprache löst einen Neustart der Anwendung aus.\nSie verlieren den Inhalt der Druckplatte."
#: src/slic3r/GUI/WipeTowerDialog.cpp:327
-msgid ""
-"Switching to simple settings will discard changes done in the advanced mode!\n"
-"\n"
-"Do you want to proceed?"
-msgstr ""
-"Das Umschalten auf einfache Einstellungen verwirft die im erweiterten Modus vorgenommenen Änderungen!\n"
-"\n"
-"Wollen Sie fortfahren?"
+msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?"
+msgstr "Das Umschalten auf einfache Einstellungen verwirft die im erweiterten Modus vorgenommenen Änderungen!\n\nWollen Sie fortfahren?"
#: src/libslic3r/PrintConfig.cpp:1949
msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive."
@@ -6537,28 +6415,18 @@ msgid "Texture"
msgstr "Textur"
#: src/slic3r/GUI/FirmwareDialog.cpp:530
-#, c-format
+#, possible-c-format
msgid "The %s device could not have been found"
msgstr "Das %s-Gerät konnte nicht gefunden werden"
#: src/slic3r/GUI/FirmwareDialog.cpp:417
-#, c-format
-msgid ""
-"The %s device was not found.\n"
-"If the device is connected, please press the Reset button next to the USB connector ..."
-msgstr ""
-"Das %s-Gerät wurde nicht gefunden.\n"
-"Wenn das Gerät angeschlossen ist, drücken Sie bitte die Reset-Taste neben dem USB-Anschluss...."
+#, possible-c-format
+msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..."
+msgstr "Das %s-Gerät wurde nicht gefunden.\nWenn das Gerät angeschlossen ist, drücken Sie bitte die Reset-Taste neben dem USB-Anschluss...."
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640
-msgid ""
-"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
-"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n"
-"once the rotation is embedded into the object coordinates."
-msgstr ""
-"Das aktuell manipulierte Objekt wird gekippt (Drehwinkel sind keine Vielfachen von 90°).\n"
-"Eine ungleiche Skalierung von geschwenkten Objekten ist nur im Weltkoordinatensystem möglich,\n"
-"sobald die Drehung in die Objektkoordinaten eingearbeitet wurde."
+msgid "The currently manipulated object is tilted (rotation angles are not multiples of 90°).\nNon-uniform scaling of tilted objects is only possible in the World coordinate system,\nonce the rotation is embedded into the object coordinates."
+msgstr "Das aktuell manipulierte Objekt wird gekippt (Drehwinkel sind keine Vielfachen von 90°).\nEine ungleiche Skalierung von geschwenkten Objekten ist nur im Weltkoordinatensystem möglich,\nsobald die Drehung in die Objektkoordinaten eingearbeitet wurde."
#: src/libslic3r/PrintConfig.cpp:2462
msgid "The default angle for connecting support sticks and junctions."
@@ -6646,14 +6514,8 @@ msgid "The object will be raised by this number of layers, and support material
msgstr "Das Objekt wird um diese Anzahl von Schichten angehoben, und darunter wird Trägermaterial erzeugt."
#: src/libslic3r/PrintConfig.cpp:2259
-msgid ""
-"The percentage of the bed area. \n"
-"If the print area exceeds the specified value, \n"
-"then a slow tilt will be used, otherwise - a fast tilt"
-msgstr ""
-"Der Prozentsatz der Bettfläche.\n"
-"Wenn der Druckbereich den angegebenen Wert überschreitet,\n"
-"wird eine langsame Verkippung verwendet, andernfalls - eine schnelle Verkippung"
+msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt"
+msgstr "Der Prozentsatz der Bettfläche.\nWenn der Druckbereich den angegebenen Wert überschreitet,\nwird eine langsame Verkippung verwendet, andernfalls - eine schnelle Verkippung"
#: src/slic3r/GUI/GUI_App.cpp:831
msgid "The presets on the following tabs were modified"
@@ -6730,14 +6592,8 @@ msgid "The vertical distance between object and support material interface. Sett
msgstr "Der vertikale Abstand zwischen Objekt und Trägermaterialschnittstelle. Wenn Sie diesen Wert auf 0 setzen, wird Slic3r auch verhindern, dass Bridge-Flow und -Geschwindigkeit für die erste Objektschicht verwendet werden."
#: src/slic3r/GUI/Tab.cpp:2429
-msgid ""
-"The Wipe option is not available when using the Firmware Retraction mode.\n"
-"\n"
-"Shall I disable it in order to enable Firmware Retraction?"
-msgstr ""
-"Die Reinigungsoption ist nicht verfügbar, wenn der Firmware-Einzug verwendet wird.\n"
-"\n"
-"Soll ich sie ausschalten, um den Firmware-Einzug zu aktivieren?"
+msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?"
+msgstr "Die Reinigungsoption ist nicht verfügbar, wenn der Firmware-Einzug verwendet wird.\n\nSoll ich sie ausschalten, um den Firmware-Einzug zu aktivieren?"
#: src/libslic3r/Print.cpp:1306
msgid "The Wipe Tower currently supports the non-soluble supports only if they are printed with the current extruder without triggering a tool change. (both support_material_extruder and support_material_interface_extruder need to be set to 0)."
@@ -6776,7 +6632,7 @@ msgid "The Wipe tower is only supported if all objects have the same layer heigh
msgstr "Der Wischturm wird nur für mehrere Objekte unterstützt, wenn diese das gleiche Schichthöhenprofil haben"
#: src/slic3r/GUI/UpdateDialogs.cpp:127
-#, c-format
+#, possible-c-format
msgid "This %s version: %s"
msgstr "Diese %s Version: %s"
@@ -6796,6 +6652,10 @@ msgstr "Dieser benutzerdefinierte Code wird bei jedem Schichtwechsel eingefügt,
msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]."
msgstr "Dieser benutzerdefinierte Code wird bei jedem Lagenwechsel, unmittelbar vor der Z Bewegung, eingefügt. Beachten Sie, dass Sie Platzhaltervariablen für alle Slic3r-Einstellungen sowie [layer_num] und [layer_z] verwenden können."
+#: src/libslic3r/PrintConfig.cpp:2057
+msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange."
+msgstr "Dieser benutzerdefinierte Code wird vor jedem Werkzeugwechsel eingefügt. Platzhaltervariablen für alle PrusaSlicer-Einstellungen sowie {previous_extruder} und {next_extruder} können verwendet werden. Wenn ein Werkzeugwechselbefehl enthalten ist, der zum richtigen Extruder wechselt (z.B. T{next_extruder}), gibt PrusaSlicer keinen anderen solchen Befehl aus. Es ist daher möglich, benutzerdefiniertes Verhalten sowohl vor als auch nach dem Werkzeugwechsel zu skripten."
+
#: src/libslic3r/PrintConfig.cpp:380
msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order."
msgstr "Dieser Endvorgang wird am Ende der Ausgabedatei, vor dem G-Code des Druckerendes (und vor jedem Werkzeugwechsel von diesem Filament bei Multimaterialdruckern) eingefügt. Beachten Sie, dass Sie Platzhaltervariablen für alle PrusaSlicer-Einstellungen verwenden können. Wenn Sie mehrere Extruder haben, wird der gcode in Extruderreihenfolge verarbeitet."
@@ -6853,27 +6713,13 @@ msgid "This file cannot be loaded in a simple mode. Do you want to switch to an
msgstr "Diese Datei kann nicht im einfachen Modus geladen werden. Möchten Sie in den fortgeschrittenen Modus wechseln?\n"
#: src/slic3r/GUI/Plater.cpp:1658
-msgid ""
-"This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\n"
-"this file as a single object having multiple parts?\n"
+msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n"
msgstr "Diese Datei enthält mehrere Objekte, die in verschiedenen Höhen positioniert sind. Anstatt sie als mehrere Objekte zu betrachten, soll ich diese Datei als ein einzelnes Objekt mit mehreren Teilen betrachten?\n"
#: src/slic3r/GUI/FirmwareDialog.cpp:313
-#, c-format
-msgid ""
-"This firmware hex file does not match the printer model.\n"
-"The hex file is intended for: %s\n"
-"Printer reported: %s\n"
-"\n"
-"Do you want to continue and flash this hex file anyway?\n"
-"Please only continue if you are sure this is the right thing to do."
-msgstr ""
-"Diese Firmware-Hex-Datei stimmt nicht mit dem Druckermodell überein.\n"
-"Die Hex-Datei ist für: %s\n"
-"Drucker erkannt: %s\n"
-"\n"
-"Möchtest Sie fortfahren und diese Hex-Datei trotzdem flashen?\n"
-"Bitte fahren Sie nur fort, wenn Sie der festen Überzeugung sind, dass dies das Richtige ist."
+#, possible-c-format
+msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do."
+msgstr "Diese Firmware-Hex-Datei stimmt nicht mit dem Druckermodell überein.\nDie Hex-Datei ist für: %s\nDrucker erkannt: %s\n\nMöchtest Sie fortfahren und diese Hex-Datei trotzdem flashen?\nBitte fahren Sie nur fort, wenn Sie der festen Überzeugung sind, dass dies das Richtige ist."
#: src/libslic3r/PrintConfig.cpp:278
msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time."
@@ -6949,12 +6795,8 @@ msgid "This matrix describes volumes (in cubic milimetres) required to purge the
msgstr "Diese Matrix beschreibt die Volumina (in Kubikmillimetern), die benötigt werden, um das neue Filament auf dem Reinigungsturm für ein bestimmtes Werkzeugpaar zu reinigen."
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643
-msgid ""
-"This operation is irreversible.\n"
-"Do you want to proceed?"
-msgstr ""
-"Dieser Vorgang ist nicht mehr rückgängig zu machen.\n"
-"Möchten Sie fortfahren?"
+msgid "This operation is irreversible.\nDo you want to proceed?"
+msgstr "Dieser Vorgang ist nicht mehr rückgängig zu machen.\nMöchten Sie fortfahren?"
#: src/libslic3r/PrintConfig.cpp:1372
msgid "This option sets the number of perimeters to generate for each layer. Note that Slic3r may increase this number automatically when it detects sloping surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled."
@@ -7017,17 +6859,9 @@ msgid "This vector saves required volumes to change from/to each tool used on th
msgstr "Dieser Vektor speichert die erforderlichen Volumina für den Wechsel von/zu jedem am Reinigungsturm verwendeten Werkzeug. Diese Werte werden verwendet, um die Erstellung des vollen Reinigungsvolumens zu vereinfachen."
#: src/slic3r/GUI/UpdateDialogs.cpp:118
-#, c-format
-msgid ""
-"This version of %s is not compatible with currently installed configuration bundles.\n"
-"This probably happened as a result of running an older %s after using a newer one.\n"
-"\n"
-"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n"
-msgstr ""
-"Diese Version von %s ist nicht kompatibel zu den aktuell installierten Konfigurationssammlungen.\n"
-"Dies wurde wahrscheinlich dadurch verursacht, dass Sie eine ältere %s Version benutzt haben, nachdem Sie eine neuere ausgeführt hatten.\n"
-"\n"
-"Sie können %s entweder beenden und es mit einer neueren Version nochmals versuchen, oder Sie können die erstmalige Startkonfiguration nochmals wiederholen. In diesem Fall wird eine Sicherungskopie der aktuellen Konfiguration erstellt, bevor die mit dieser %s-Version kompatiblen Dateien installiert werden.\n"
+#, possible-c-format
+msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n"
+msgstr "Diese Version von %s ist nicht kompatibel zu den aktuell installierten Konfigurationssammlungen.\nDies wurde wahrscheinlich dadurch verursacht, dass Sie eine ältere %s Version benutzt haben, nachdem Sie eine neuere ausgeführt hatten.\n\nSie können %s entweder beenden und es mit einer neueren Version nochmals versuchen, oder Sie können die erstmalige Startkonfiguration nochmals wiederholen. In diesem Fall wird eine Sicherungskopie der aktuellen Konfiguration erstellt, bevor die mit dieser %s-Version kompatiblen Dateien installiert werden.\n"
#: src/libslic3r/PrintConfig.cpp:2284
msgid "This will apply a gamma correction to the rasterized 2D polygons. A gamma value of zero means thresholding with the threshold in the middle. This behaviour eliminates antialiasing without losing holes in polygons."
@@ -7086,7 +6920,7 @@ msgid "To parts"
msgstr "Zu Teilen"
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212
-#, c-format
+#, possible-c-format
msgid "Toggle %c axis mirroring"
msgstr "Umschalten der Spiegelung der %c-Achse"
@@ -7184,7 +7018,7 @@ msgid "Undo"
msgstr "Undo"
#: src/slic3r/GUI/GLCanvas3D.cpp:3497
-#, c-format
+#, possible-c-format
msgid "Undo %1$d Action"
msgid_plural "Undo %1$d Actions"
msgstr[0] "Undo %1$d Aktion"
@@ -7223,20 +7057,12 @@ msgid "UNLOCKED LOCK"
msgstr "OFFENES SCHLOSS"
#: src/slic3r/GUI/Tab.cpp:3362
-msgid ""
-"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\n"
-"Click to reset all settings for current option group to the system (or default) values."
-msgstr ""
-"Das Symbol GEÖFFNETES SCHLOSS zeigt an, dass einige Einstellungen geändert wurden und nicht mehr mit den System- (oder Standard-) Werte für die aktuelle Optionsgruppe identisch sind.\n"
-"Klicken Sie, um alle Einstellungen für die aktuelle Optionsgruppe auf die System- (oder Standard-) Werte zurückzusetzen."
+msgid "UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick to reset all settings for current option group to the system (or default) values."
+msgstr "Das Symbol GEÖFFNETES SCHLOSS zeigt an, dass einige Einstellungen geändert wurden und nicht mehr mit den System- (oder Standard-) Werte für die aktuelle Optionsgruppe identisch sind.\nKlicken Sie, um alle Einstellungen für die aktuelle Optionsgruppe auf die System- (oder Standard-) Werte zurückzusetzen."
#: src/slic3r/GUI/Tab.cpp:3377
-msgid ""
-"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\n"
-"Click to reset current value to the system (or default) value."
-msgstr ""
-"Das Symbol GEÖFFNETES SCHLOSS zeigt an, dass der Wert geändert wurde und nicht mit der System- (oder Standard-) Einstellung identisch ist.\n"
-"Klicken Sie, um den aktuellen Wert auf die System- (oder Standard-) Einstellung zurückzusetzen."
+msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\nClick to reset current value to the system (or default) value."
+msgstr "Das Symbol GEÖFFNETES SCHLOSS zeigt an, dass der Wert geändert wurde und nicht mit der System- (oder Standard-) Einstellung identisch ist.\nKlicken Sie, um den aktuellen Wert auf die System- (oder Standard-) Einstellung zurückzusetzen."
#: src/slic3r/GUI/GUI_Preview.cpp:245
msgid "Unretractions"
@@ -7283,7 +7109,7 @@ msgid "Unsupported selection"
msgstr "Nicht unterstützte Auswahl"
#: src/libslic3r/GCode/PreviewData.cpp:495
-#, c-format
+#, possible-c-format
msgid "up to %.2f mm"
msgstr "bis zu %.2f mm"
@@ -7496,12 +7322,12 @@ msgid "Welcome"
msgstr "Willkommen"
#: src/slic3r/GUI/ConfigWizard.cpp:296
-#, c-format
+#, possible-c-format
msgid "Welcome to the %s Configuration Assistant"
msgstr "Willkommen zum %s Konfigurations-Assistent"
#: src/slic3r/GUI/ConfigWizard.cpp:298
-#, c-format
+#, possible-c-format
msgid "Welcome to the %s Configuration Wizard"
msgstr "Willkommen zum %s Konfigurations-Assistent"
@@ -7662,18 +7488,8 @@ msgid "World coordinates"
msgstr "Weltkoordinaten"
#: src/slic3r/GUI/UpdateDialogs.cpp:76
-msgid ""
-"Would you like to install it?\n"
-"\n"
-"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n"
-"\n"
-"Updated configuration bundles:"
-msgstr ""
-"Möchten Sie dies installieren?\n"
-"\n"
-"Beachten Sie, dass zuerst eine Momentaufnahme der gesamten Konfiguration erstellt wird. Diese kann dann jederzeit wiederhergestellt werden, falls es ein Problem mit der neuen Version gibt.\n"
-"\n"
-"Aktualisierte Konfigurationssammlungen:"
+msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:"
+msgstr "Möchten Sie dies installieren?\n\nBeachten Sie, dass zuerst eine Momentaufnahme der gesamten Konfiguration erstellt wird. Diese kann dann jederzeit wiederhergestellt werden, falls es ein Problem mit der neuen Version gibt.\n\nAktualisierte Konfigurationssammlungen:"
#: src/libslic3r/Zipper.cpp:95
msgid "write calledback failed"
@@ -7744,7 +7560,7 @@ msgid "You can't load SLA project if there is at least one multi-part object on
msgstr "Sie können kein SLA-Projekt laden, wenn sich zumindest ein mehrteiliges Objekt auf dem Bett befindet"
#: src/slic3r/GUI/Plater.cpp:1746
-#, c-format
+#, possible-c-format
msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part"
msgstr "Sie können die Objekte aus %s nicht hinzufügen, weil eines oder einige von ihnen mehrteilig ist (sind)"
@@ -7757,12 +7573,12 @@ msgid "You may need to update your graphics card driver."
msgstr "Möglicherweise müssen Sie Ihren Grafikkartentreiber aktualisieren."
#: src/slic3r/GUI/Preferences.cpp:130
-#, c-format
+#, possible-c-format
msgid "You need to restart %s to make the changes effective."
msgstr "Sie müssen %s neu starten, damit die Änderungen wirksam werden."
#: src/slic3r/GUI/GUI_ObjectList.cpp:2415
-#, c-format
+#, possible-c-format
msgid "You started your selection with %s Item."
msgstr "Sie haben Ihre Auswahl mit %s Elementen begonnen."
diff --git a/resources/localization/es/PrusaSlicer.mo b/resources/localization/es/PrusaSlicer.mo
index b97a14c25..d5c9bf25d 100644
--- a/resources/localization/es/PrusaSlicer.mo
+++ b/resources/localization/es/PrusaSlicer.mo
Binary files differ
diff --git a/resources/localization/es/PrusaSlicer_es.po b/resources/localization/es/PrusaSlicer_es.po
index fc868db57..c69e55b8d 100644
--- a/resources/localization/es/PrusaSlicer_es.po
+++ b/resources/localization/es/PrusaSlicer_es.po
@@ -5,28 +5,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 2.2.1\n"
-"Project-Id-Version: \n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: \n"
-"Last-Translator: \n"
-"Language-Team: \n"
+"X-Generator: PhraseApp (phraseapp.com)\n"
#: src/slic3r/GUI/PresetHints.cpp:39
-msgid ""
-"\n"
-"During the other layers, fan"
-msgstr ""
-"\n"
-"Durante las otras capas, el ventilador"
+msgid "\nDuring the other layers, fan"
+msgstr "\nDurante las otras capas, el ventilador"
#: src/slic3r/GUI/PresetHints.cpp:35
-msgid ""
-"\n"
-"If estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%."
-msgstr ""
-"\n"
-"Si el tiempo estimado de la capa es mayor, pero todavía por debajo de ~%1%s, el ventilador funcionará a una velocidad proporcionalmente menor entre %2%%% y %3%%%."
+msgid "\nIf estimated layer time is greater, but still below ~%1%s, fan will run at a proportionally decreasing speed between %2%%% and %3%%%."
+msgstr "\nSi el tiempo estimado de la capa es mayor, pero todavía por debajo de ~%1%s, el ventilador funcionará a una velocidad proporcionalmente menor entre %2%%% y %3%%%."
#: src/slic3r/GUI/MainFrame.cpp:61
msgid " - Remember to check for updates at http://github.com/prusa3d/PrusaSlicer/releases"
@@ -44,7 +31,7 @@ msgid "%"
msgstr "%"
#: src/libslic3r/GCode/PreviewData.cpp:504
-#, c-format
+#, possible-c-format
msgid "%.2f - %.2f mm"
msgstr "%.2f - %.2f mm"
@@ -66,105 +53,87 @@ msgid "%1%=%2% mm is too low to be printable at a layer height %3% mm"
msgstr "%1%=%2% mm es demasiado bajo para ser impreso a una altura de capa de %3% mm"
#: src/slic3r/GUI/PresetHints.cpp:228
-#, c-format
+#, possible-c-format
msgid "%3.2f mm³/s at filament speed %3.2f mm/s."
msgstr "%3.2f mm³/s a una velocidad de filamento de %3.2f mm/s."
#: src/slic3r/GUI/Plater.cpp:974
-#, c-format
+#, possible-c-format
msgid "%d (%d shells)"
msgstr "%d (%d pieles)"
#: src/slic3r/GUI/Plater.cpp:982
-#, c-format
+#, possible-c-format
msgid "%d degenerate facets, %d edges fixed, %d facets removed, %d facets added, %d facets reversed, %d backwards edges"
msgstr "%d facetas problemáticas, %d aristas corregidas, %d facetas eliminadas, %d facetas añadidas, %d facetas invertidas, %d aristas del revés"
#: src/slic3r/GUI/PresetHints.cpp:268
-#, c-format
+#, possible-c-format
msgid "%d lines: %.2f mm"
msgstr "%d líneas: %.2f mm"
#: src/slic3r/GUI/MainFrame.cpp:894
-#, c-format
+#, possible-c-format
msgid "%d presets successfully imported."
msgstr "%d ajustes iniciales importados con éxito."
#: src/slic3r/GUI/MainFrame.cpp:550
-#, c-format
+#, possible-c-format
msgid "%s &Website"
msgstr "%s &Sitio Web"
#: src/slic3r/GUI/UpdateDialogs.cpp:113
-#, c-format
+#, possible-c-format
msgid "%s configuration is incompatible"
msgstr "%s la configuración es incompatible"
#: src/slic3r/GUI/Field.cpp:136
-#, c-format
+#, possible-c-format
msgid "%s doesn't support percentage"
msgstr "%s no permite porcentajes"
#: src/slic3r/GUI/MsgDialog.cpp:73
-#, c-format
+#, possible-c-format
msgid "%s error"
msgstr "%s error"
#: src/slic3r/GUI/ConfigWizard.cpp:336
-#, c-format
+#, possible-c-format
msgid "%s Family"
msgstr "%s Familia"
#: src/slic3r/GUI/MsgDialog.cpp:74
-#, c-format
+#, possible-c-format
msgid "%s has encountered an error"
msgstr "%s ha ocurrido un error"
#: src/slic3r/GUI/GUI_App.cpp:132
-#, c-format
-msgid ""
-"%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n"
-"\n"
-"The application will now terminate."
-msgstr ""
-"%s ha encontrado un error. Probablemente fue causado por quedarse sin memoria. Si estás seguro de tener suficiente RAM en su sistema, esto también puede ser un error y nos complacería que lo informaras.\n"
-"\n"
-"La aplicación se cerrará."
+#, possible-c-format
+msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it.\n\nThe application will now terminate."
+msgstr "%s ha encontrado un error. Probablemente fue causado por quedarse sin memoria. Si estás seguro de tener suficiente RAM en su sistema, esto también puede ser un error y nos complacería que lo informaras.\n\nLa aplicación se cerrará."
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:155
-#, c-format
+#, possible-c-format
msgid "%s has encountered an error. It was likely caused by running out of memory. If you are sure you have enough RAM on your system, this may also be a bug and we would be glad if you reported it."
msgstr "%s ha encontrado un error. Probablemente fue causado por quedarse sin memoria. Si estás seguro de tener suficiente RAM en su sistema, esto también puede ser un error y nos complacería que lo informaras."
#: src/slic3r/GUI/UpdateDialogs.cpp:112
-#, c-format
+#, possible-c-format
msgid "%s incompatibility"
msgstr "%s incompatibilidad"
#: src/slic3r/GUI/UpdateDialogs.cpp:172
-#, c-format
-msgid ""
-"%s now uses an updated configuration structure.\n"
-"\n"
-"So called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\n"
-"An inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n"
-"\n"
-"Please proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates."
-msgstr ""
-"Ahora %s usa una estructura actualizada para la configuración. \n"
-"\n"
-"Se han introducido los llamados 'Ajustes del sistema' , que tienen valores por defecto para varias impresoras. Estos ajustes del sistema no pueden modificarse, por el contrario, los usuarios pueden crear nuevos ajustes que se basan en alguno de ellos.\n"
-"Un ajuste nuevo puede heredar un valor de un ajuste existente o bien tener un nuevo valor personalizado.\n"
-"\n"
-"Por favof, continúa con el %s que sigue para establecer los nuevos ajustes y seleccionar si quieres que estos se actualicen automáticamente."
+#, possible-c-format
+msgid "%s now uses an updated configuration structure.\n\nSo called 'System presets' have been introduced, which hold the built-in default settings for various printers. These System presets cannot be modified, instead, users now may create their own presets inheriting settings from one of the System presets.\nAn inheriting preset may either inherit a particular value from its parent or override it with a customized value.\n\nPlease proceed with the %s that follows to set up the new presets and to choose whether to enable automatic preset updates."
+msgstr "Ahora %s usa una estructura actualizada para la configuración. \n\nSe han introducido los llamados 'Ajustes del sistema' , que tienen valores por defecto para varias impresoras. Estos ajustes del sistema no pueden modificarse, por el contrario, los usuarios pueden crear nuevos ajustes que se basan en alguno de ellos.\nUn ajuste nuevo puede heredar un valor de un ajuste existente o bien tener un nuevo valor personalizado.\n\nPor favof, continúa con el %s que sigue para establecer los nuevos ajustes y seleccionar si quieres que estos se actualicen automáticamente."
#: src/slic3r/GUI/GUI_App.cpp:681
-#, c-format
+#, possible-c-format
msgid "%s View Mode"
msgstr "%s Tipo de vista"
#: src/slic3r/GUI/MainFrame.cpp:563
-#, c-format
+#, possible-c-format
msgid "&About %s"
msgstr "&Acerca de %s"
@@ -305,7 +274,7 @@ msgid "3D Honeycomb"
msgstr "Panal de abeja 3D"
#: src/slic3r/GUI/Plater.cpp:3590
-#, c-format
+#, possible-c-format
msgid "3MF file exported to %s"
msgstr "Archivo 3MF exportado a %s"
@@ -334,12 +303,12 @@ msgid "A toolpath outside the print area was detected"
msgstr "Se detectó una trayectoria fuera del área de impresión"
#: src/slic3r/GUI/AboutDialog.cpp:35
-#, c-format
+#, possible-c-format
msgid "About %s"
msgstr "Acerca de %s"
#: src/libslic3r/GCode/PreviewData.cpp:499
-#, c-format
+#, possible-c-format
msgid "above %.2f mm"
msgstr "sobre %.2f mm"
@@ -573,17 +542,13 @@ msgid "Alternate nozzles:"
msgstr "Alternar nozzles:"
#: src/slic3r/GUI/Plater.cpp:3561
-#, c-format
+#, possible-c-format
msgid "AMF file exported to %s"
msgstr "Archivo AMF exportado a %s"
#: src/slic3r/GUI/GLCanvas3D.cpp:725
-msgid ""
-"An object outside the print area was detected\n"
-"Resolve the current problem to continue slicing"
-msgstr ""
-"Se ha detectado una pieza fuera del área de impresión\n"
-"Soluciona el problema actual para continuar el laminado"
+msgid "An object outside the print area was detected\nResolve the current problem to continue slicing"
+msgstr "Se ha detectado una pieza fuera del área de impresión\nSoluciona el problema actual para continuar el laminado"
#: src/slic3r/GUI/GLCanvas3D.cpp:720
msgid "An object outside the print area was detected"
@@ -632,12 +597,8 @@ msgid "Are you sure you want to %1% the selected preset?"
msgstr "¿Estás seguro de que deseas %1% el preset seleccionado?"
#: src/slic3r/GUI/FirmwareDialog.cpp:862
-msgid ""
-"Are you sure you want to cancel firmware flashing?\n"
-"This could leave your printer in an unusable state!"
-msgstr ""
-"¿Estas seguro de cancelar el flaseo del firmware?\n"
-"¡Esto podría dejar tu impresora en un estado inusable!"
+msgid "Are you sure you want to cancel firmware flashing?\nThis could leave your printer in an unusable state!"
+msgstr "¿Estas seguro de cancelar el flaseo del firmware?\n¡Esto podría dejar tu impresora en un estado inusable!"
#: src/libslic3r/PrintConfig.cpp:2258
msgid "Area fill"
@@ -712,12 +673,12 @@ msgid "Auto-generate points"
msgstr "Auto-generar puntos"
#: src/slic3r/GUI/Plater.cpp:979
-#, c-format
+#, possible-c-format
msgid "Auto-repaired (%d errors)"
msgstr "Reparados automáticamente (%d errores)"
#: src/slic3r/GUI/GUI_ObjectList.cpp:230
-#, c-format
+#, possible-c-format
msgid "Auto-repaired (%d errors):\n"
msgstr "Reparado automáticamente (%d errores):\n"
@@ -730,14 +691,8 @@ msgid "Autogenerate support points"
msgstr "Genera los puntos de apoyo automáticamente"
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1166
-msgid ""
-"Autogeneration will erase all manually edited points.\n"
-"\n"
-"Are you sure you want to do it?\n"
-msgstr ""
-"La autogeneración borrará todos los puntos editados manualmente. \n"
-"\n"
-"¿Estás seguro de que deseas hacerlo?\n"
+msgid "Autogeneration will erase all manually edited points.\n\nAre you sure you want to do it?\n"
+msgstr "La autogeneración borrará todos los puntos editados manualmente. \n\n¿Estás seguro de que deseas hacerlo?\n"
#: src/slic3r/GUI/Tab.cpp:3421
msgid "Automatic generation"
@@ -764,20 +719,12 @@ msgid "BACK ARROW"
msgstr "FLECHA HACIA ATRÁS"
#: src/slic3r/GUI/Tab.cpp:3113
-msgid ""
-"BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n"
-"Click to reset all settings for the current option group to the last saved preset."
-msgstr ""
-"El símbolo de FLECHA ATRÁS indica que los ajustes cambiaron y que no son iguales a los que se guardaron para el grupo de opciones actual.\n"
-"Haz clic para devolver esos valores a los últimos guardados."
+msgid "BACK ARROW icon indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick to reset all settings for the current option group to the last saved preset."
+msgstr "El símbolo de FLECHA ATRÁS indica que los ajustes cambiaron y que no son iguales a los que se guardaron para el grupo de opciones actual.\nHaz clic para devolver esos valores a los últimos guardados."
#: src/slic3r/GUI/Tab.cpp:3127
-msgid ""
-"BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\n"
-"Click to reset current value to the last saved preset."
-msgstr ""
-"La FLECHA ATRÁS indica que el valor ha cambiado y ya no es el mismo que el guardado la última vez.\n"
-"Haz clic para restaurar el valor al último ajuste guardado."
+msgid "BACK ARROW icon indicates that the value was changed and is not equal to the last saved preset.\nClick to reset current value to the last saved preset."
+msgstr "La FLECHA ATRÁS indica que el valor ha cambiado y ya no es el mismo que el guardado la última vez.\nHaz clic para restaurar el valor al último ajuste guardado."
#: src/slic3r/GUI/Preferences.cpp:52
msgid "Background processing"
@@ -1001,7 +948,7 @@ msgid "Change extruder"
msgstr "Cambiar extrusor"
#: src/slic3r/GUI/GUI_ObjectSettings.cpp:144
-#, c-format
+#, possible-c-format
msgid "Change Option %s"
msgstr "Cambiar opción %s"
@@ -1342,7 +1289,7 @@ msgid "Cubic"
msgstr "Cúbico"
#: src/slic3r/GUI/wxExtensions.cpp:2413
-#, c-format
+#, possible-c-format
msgid "Current mode is %s"
msgstr "El modo actual es %s"
@@ -1351,13 +1298,9 @@ msgid "Current preset is inherited from the default preset."
msgstr "El preajuste fue heredado del preajuste predeterminado."
#: src/slic3r/GUI/Tab.cpp:928
-#, c-format
-msgid ""
-"Current preset is inherited from:\n"
-"\t%s"
-msgstr ""
-"El preajuste fue heredado de:\n"
-"%s"
+#, possible-c-format
+msgid "Current preset is inherited from:\n\t%s"
+msgstr "El preajuste fue heredado de:\n%s"
#: src/slic3r/GUI/UpdateDialogs.cpp:45
msgid "Current version:"
@@ -1450,7 +1393,7 @@ msgid "Default filament profile associated with the current printer profile. On
msgstr "Perfil de filamento por defecto asociado con el perfil de impresora actual. Al seleccionar el perfil de impresora actual se activará este perfil de filamento."
#: src/slic3r/GUI/Tab.cpp:2757
-#, c-format
+#, possible-c-format
msgid "Default preset (%s)"
msgstr "Ajustes por defecto (%s)"
@@ -1545,7 +1488,7 @@ msgid "Delete Object"
msgstr "Eliminar Objeto"
#: src/slic3r/GUI/GUI_ObjectSettings.cpp:100
-#, c-format
+#, possible-c-format
msgid "Delete Option %s"
msgstr "Eliminar Opción %s"
@@ -1753,15 +1696,9 @@ msgid "Do not rearrange the given models before merging and keep their original
msgstr "No reorganizar los modelos dados antes de fusionar y mantener sus coordenadas XY originales."
#: src/slic3r/GUI/Field.cpp:206
-#, c-format
-msgid ""
-"Do you mean %s%% instead of %s %s?\n"
-"Select YES if you want to change this value to %s%%, \n"
-"or NO if you are sure that %s %s is a correct value."
-msgstr ""
-"¿Quieres decir %s%% en vez de %s %s?\n"
-"Escoge SI si deseas cambiar este valor a %s%%,\n"
-"o NO si estás seguro que %s %s es el valor correcto."
+#, possible-c-format
+msgid "Do you mean %s%% instead of %s %s?\nSelect YES if you want to change this value to %s%%, \nor NO if you are sure that %s %s is a correct value."
+msgstr "¿Quieres decir %s%% en vez de %s %s?\nEscoge SI si deseas cambiar este valor a %s%%,\no NO si estás seguro que %s %s es el valor correcto."
#: src/slic3r/GUI/GUI_App.cpp:754
msgid "Do you want to proceed?"
@@ -1834,6 +1771,10 @@ msgstr "Compensación del pie de elefante"
msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation."
msgstr "La elevación es demasiado baja para el objeto. Utiliza la función \"Pad alrededor del objeto\" para imprimir el objeto sin elevación."
+#: src/libslic3r/SLAPrint.cpp:678
+msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation."
+msgstr "Elevación demasiado baja para el objeto. Utiliza la característica \"Pad alrededor del objeto\" para imprimir el objeto sin elevación."
+
#: src/libslic3r/PrintConfig.cpp:1044
msgid "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals into the G-code to let the firmware show accurate remaining time. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode."
msgstr "Emitir M73 P[porcentaje impreso] R[tiempo restante en minutos] en intervalos de 1 minuto en el código G para permitir que el firmware muestre el tiempo restante preciso. A partir de ahora solo el firmware Prusa i3 MK3 reconoce M73. También el firmware i3 MK3 es compatible con M73 Qxx Sxx para el modo silencioso."
@@ -1934,17 +1875,17 @@ msgid "Error"
msgstr "Error"
#: src/slic3r/GUI/FirmwareDialog.cpp:608
-#, c-format
+#, possible-c-format
msgid "Error accessing port at %s: %s"
msgstr "Error al acceder al puerto en %s: %s"
#: src/slic3r/GUI/Plater.cpp:3593
-#, c-format
+#, possible-c-format
msgid "Error exporting 3MF file %s"
msgstr "Error al exportar archivo 3MF %s"
#: src/slic3r/GUI/Plater.cpp:3564
-#, c-format
+#, possible-c-format
msgid "Error exporting AMF file %s"
msgstr "Error exportando archivo AMF %s"
@@ -1969,7 +1910,7 @@ msgid "Error! Invalid model"
msgstr "Error! Modelo inválido"
#: src/slic3r/GUI/FirmwareDialog.cpp:610
-#, c-format
+#, possible-c-format
msgid "Error: %s"
msgstr "Error: %s"
@@ -1999,7 +1940,7 @@ msgid "Excessive %1%=%2% mm to be printable with a nozzle diameter %3% mm"
msgstr "%1%=%2% mm excesivos para ser imprimible con un nozzle de diámetro de %3% mm"
#: src/slic3r/GUI/UpdateDialogs.cpp:148
-#, c-format
+#, possible-c-format
msgid "Exit %s"
msgstr "Salir %s"
@@ -2207,7 +2148,7 @@ msgid "Extruder"
msgstr "Extrusor"
#: src/slic3r/GUI/Tab.cpp:2253 src/libslic3r/GCode/PreviewData.cpp:475
-#, c-format
+#, possible-c-format
msgid "Extruder %d"
msgstr "Extrusor %d"
@@ -2562,12 +2503,8 @@ msgstr "Sólo para modificadores de soportes"
#. TRN Description for "WHITE BULLET"
#: src/slic3r/GUI/Tab.cpp:3345
-msgid ""
-"for the left button: \tindicates a non-system (or non-default) preset,\n"
-"for the right button: \tindicates that the settings hasn't been modified."
-msgstr ""
-"para el botón izquierdo: indica un preajuste que no es del sistema (o no predeterminado),\n"
-"para el botón derecho: indica que la configuración no se ha modificado."
+msgid "for the left button: \tindicates a non-system (or non-default) preset,\nfor the right button: \tindicates that the settings hasn't been modified."
+msgstr "para el botón izquierdo: indica un preajuste que no es del sistema (o no predeterminado),\npara el botón derecho: indica que la configuración no se ha modificado."
#: src/libslic3r/Print.cpp:1302
msgid "For the Wipe Tower to work with the soluble supports, the support layers need to be synchronized with the object layers."
@@ -2780,7 +2717,7 @@ msgid "Heights at which a filament change is to occur."
msgstr "Alturas en las que se producirá un cambio de filamento."
#: src/slic3r/GUI/ConfigWizard.cpp:300
-#, c-format
+#, possible-c-format
msgid "Hello, welcome to %s! This %s helps you with the initial configuration; just a few settings and you will be ready to print."
msgstr "Hola, bienvenido a %s! Este %s te ayuda con la configuración inicial; sólo unos pocos ajustes y estarás preparado para imprimir."
@@ -2841,9 +2778,7 @@ msgid "Hostname, IP or URL"
msgstr "Nombre de equipo, IP o URL"
#: src/slic3r/GUI/Tab.cpp:136
-msgid ""
-"Hover the cursor over buttons to find more information \n"
-"or click this button."
+msgid "Hover the cursor over buttons to find more information \nor click this button."
msgstr "Sitúa el cursos sobre los botones para más información o haz clic en este botón."
#: src/libslic3r/PrintConfig.cpp:2734
@@ -2867,15 +2802,9 @@ msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self
msgstr "El archivo HTTPS CA es opcional. Sólo se necesita si vas a usar HTTPS con un certificado auto-firmado."
#: src/slic3r/GUI/Tab.cpp:1773
-#, c-format
-msgid ""
-"HTTPS CA File:\n"
-" \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n"
-" \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain."
-msgstr ""
-"Archivo CA HTTPS:\n"
-"En este sistema,%s usa certificados HTTPS del almacén de certificados o llavero. \n"
-"Para usar un archivo CA personalizado, importa tu archivo CA al Almacén de Certificados/Llavero."
+#, possible-c-format
+msgid "HTTPS CA File:\n \tOn this system, %s uses HTTPS certificates from the system Certificate Store or Keychain.\n \tTo use a custom CA file, please import your CA file into Certificate Store / Keychain."
+msgstr "Archivo CA HTTPS:\nEn este sistema,%s usa certificados HTTPS del almacén de certificados o llavero. \nPara usar un archivo CA personalizado, importa tu archivo CA al Almacén de Certificados/Llavero."
#: src/slic3r/GUI/Preferences.cpp:192
msgid "Icon size in a respect to the default size"
@@ -2890,12 +2819,12 @@ msgid "If checked, supports will be generated automatically based on the overhan
msgstr "Si se marca, los soportes se generarán automáticamente según el valor del umbral de voladizo. Si no se selecciona, los apoyos se generarán solo dentro de los volúmenes \"Forzar soportes\"."
#: src/slic3r/GUI/ConfigWizard.cpp:413
-#, c-format
+#, possible-c-format
msgid "If enabled, %s checks for new application versions 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."
msgstr "Si está activado, %s comprueba si hay nuevas versiones de Slic3r PE en la red. Cuando hay disponible una nueva versión se muestra una notificación al iniciar la aplicación (nunca durante el uso del programa). Esto es sólo un mecanismo de notificación, sin que se realice una instalación automática."
#: src/slic3r/GUI/ConfigWizard.cpp:423
-#, c-format
+#, possible-c-format
msgid "If enabled, %s downloads updates of built-in system presets in the background.These updates are downloaded into a separate temporary location.When a new preset version becomes available it is offered at application startup."
msgstr "Si está activado, %s descargará actualizaciones de los ajustes del sistema mientras lo usamos. Estas actualizaciones se descargan a una ubicación temporal. Cuando hay un nuevo ajuste disponible, este se podrá incorporar y usar cuando la aplicación se vuelva a iniciar."
@@ -3016,7 +2945,7 @@ msgid "Import STL/OBJ/AMF/3MF without config, keep bed"
msgstr "Importar STL/OBJ/AMF/3MF sin config,manteniendo contenido base"
#: src/slic3r/GUI/GUI_ObjectList.cpp:2416
-#, c-format
+#, possible-c-format
msgid "In this mode you can select only other %s Items%s"
msgstr "En este modo, solo puede seleccionar otros %s Items %s"
@@ -3025,7 +2954,7 @@ msgid "Incompatible bundles:"
msgstr "Grupos incompatibles:"
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:70
-#, c-format
+#, possible-c-format
msgid "Incompatible with this %s"
msgstr "Incompatible con este %s"
@@ -3035,12 +2964,8 @@ msgstr "Aumentar Instancias"
#. TRN Description for "UNLOCKED LOCK"
#: src/slic3r/GUI/Tab.cpp:3338
-msgid ""
-"indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\n"
-"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values."
-msgstr ""
-"indica que se modificaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados) para el grupo de opciones actual.\n"
-"Haz clic en el icono CANDADO DESBLOQUEADO para restablecer todos los ajustes del grupo de opciones actual a los valores del sistema (o predeterminados)."
+msgid "indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values."
+msgstr "indica que se modificaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados) para el grupo de opciones actual.\nHaz clic en el icono CANDADO DESBLOQUEADO para restablecer todos los ajustes del grupo de opciones actual a los valores del sistema (o predeterminados)."
#. TRN Description for "LOCKED LOCK"
#: src/slic3r/GUI/Tab.cpp:3334
@@ -3049,9 +2974,7 @@ msgstr "indica que los ajustes son los mismos que los valores del sistema (o por
#. TRN Description for "BACK ARROW"
#: src/slic3r/GUI/Tab.cpp:3083
-msgid ""
-"indicates that the settings were changed and are not equal to the last saved preset for the current option group.\n"
-"Click the BACK ARROW icon to reset all settings for the current option group to the last saved preset."
+msgid "indicates that the settings were changed and are not equal to the last saved preset for the current option group.\nClick the BACK ARROW icon to reset all settings for the current option group to the last saved preset."
msgstr "indica que los ajustes cambiaron y no son iguales que los ajustes grabados la última vez para el grupo de opciones actual. Haz clic en el símbolo de FLECHA ATRÁS para resetear todos los ajustes del grupo de opciones actual a los grabados la vez anterior."
#: src/slic3r/GUI/GUI_ObjectList.cpp:29 src/slic3r/GUI/GUI_ObjectList.cpp:69
@@ -3117,7 +3040,7 @@ msgid "Inspect / activate configuration snapshots"
msgstr "Inspeccionar / activar instantáneas de configuración"
#: src/slic3r/GUI/wxExtensions.cpp:407 src/slic3r/GUI/wxExtensions.cpp:474
-#, c-format
+#, possible-c-format
msgid "Instance %d"
msgstr "Instancia %d"
@@ -3833,7 +3756,7 @@ msgid "Mirror vertically"
msgstr "Reflejar verticalmente"
#: src/slic3r/Utils/OctoPrint.cpp:69
-#, c-format
+#, possible-c-format
msgid "Mismatched type of print host: %s"
msgstr "Tipo de host de impresión no coincidente: %s"
@@ -4018,7 +3941,7 @@ msgid "Multi-part object detected"
msgstr "Objeto de piezas múltiples detectado"
#: src/slic3r/GUI/FirmwareDialog.cpp:400 src/slic3r/GUI/FirmwareDialog.cpp:436
-#, c-format
+#, possible-c-format
msgid "Multiple %s devices found. Please only connect one at a time for flashing."
msgstr "Se encontraron múltiples dispositivos %s. Por favor, conecta solo uno a la vez para flashear."
@@ -4027,14 +3950,8 @@ msgid "Multiple Extruders"
msgstr "Múltiples Extrusores"
#: src/slic3r/GUI/Plater.cpp:1766
-msgid ""
-"Multiple objects were loaded for a multi-material printer.\n"
-"Instead of considering them as multiple objects, should I consider\n"
-"these files to represent a single object having multiple parts?\n"
-msgstr ""
-"Se cargaron varios objetos para una impresora de varios materiales.\n"
-"En lugar de considerarlos como objetos múltiples, ¿debería considerar\n"
-"estos archivos para formar un solo objeto que tiene varias partes?\n"
+msgid "Multiple objects were loaded for a multi-material printer.\nInstead of considering them as multiple objects, should I consider\nthese files to represent a single object having multiple parts?\n"
+msgstr "Se cargaron varios objetos para una impresora de varios materiales.\nEn lugar de considerarlos como objetos múltiples, ¿debería considerar\nestos archivos para formar un solo objeto que tiene varias partes?\n"
#: src/libslic3r/PrintConfig.cpp:3050
msgid "Multiply copies by creating a grid."
@@ -4077,7 +3994,7 @@ msgid "New Project"
msgstr "Nuevo proyecto"
#: src/slic3r/GUI/UpdateDialogs.cpp:30
-#, c-format
+#, possible-c-format
msgid "New version of %s is available"
msgstr "Nueva versión de %s disponible"
@@ -4323,7 +4240,7 @@ msgid "Open project STL/OBJ/AMF/3MF with config, delete bed"
msgstr "Abrir el proyecto STL/OBJ/AMF/3MF con config, borrar contenido base"
#: src/slic3r/GUI/MainFrame.cpp:551
-#, c-format
+#, possible-c-format
msgid "Open the %s website in your browser"
msgstr "Abrir el sitio web de %s en su navegador"
@@ -4534,7 +4451,7 @@ msgid "Perimeters"
msgstr "Perímetros"
#: src/slic3r/GUI/ConfigWizard.cpp:440
-#, c-format
+#, possible-c-format
msgid "Pick another vendor supported by %s:"
msgstr "Escoge otro fabricante soportado por %s:"
@@ -4620,42 +4537,26 @@ msgid "Preparing infill"
msgstr "Preparando relleno"
#: src/slic3r/GUI/Tab.cpp:2758
-#, c-format
+#, possible-c-format
msgid "Preset (%s)"
msgstr "Ajuste inicial (%s)"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:147
-msgid ""
-"Press to activate deselection rectangle\n"
-"or to scale or rotate selected objects\n"
-"around their own center"
-msgstr ""
-"Presiona para activar el rectángulo de deselección \n"
-"o para escalar o rotar los objetos seleccionados \n"
-"en torno a su propio centro"
+msgid "Press to activate deselection rectangle\nor to scale or rotate selected objects\naround their own center"
+msgstr "Presiona para activar el rectángulo de deselección \no para escalar o rotar los objetos seleccionados \nen torno a su propio centro"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:148
msgid "Press to activate one direction scaling in Gizmo scale"
msgstr "Presiona para activar la escala de una dirección en la escala Gizmo"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:146
-#, c-format
-msgid ""
-"Press to activate selection rectangle\n"
-"or to snap by 5% in Gizmo scale\n"
-"or to snap by 1mm in Gizmo move"
-msgstr ""
-"Presiona para activar el rectángulo de selección\n"
-" o para ajustar un 5% en la escala Gizmo\n"
-" o para ajustar un 1 mm en el movimiento Gizmo"
+#, possible-c-format
+msgid "Press to activate selection rectangle\nor to snap by 5% in Gizmo scale\nor to snap by 1mm in Gizmo move"
+msgstr "Presiona para activar el rectángulo de selección\n o para ajustar un 5% en la escala Gizmo\n o para ajustar un 1 mm en el movimiento Gizmo"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:147
-msgid ""
-"Press to scale selection to fit print volume\n"
-"in Gizmo scale"
-msgstr ""
-"Presiona para escalar la selección para cuadrar en el volumen de impresión\n"
-"en escala Gizmo"
+msgid "Press to scale selection to fit print volume\nin Gizmo scale"
+msgstr "Presiona para escalar la selección para cuadrar en el volumen de impresión\nen escala Gizmo"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:127
msgid "Press to select multiple object or move multiple object with mouse"
@@ -4777,12 +4678,12 @@ msgstr "Imprimir con múltiples extrusoras de diferentes diámetros de boquilla.
#. TRN "Processing input_file_basename"
#: src/slic3r/GUI/MainFrame.cpp:715
-#, c-format
+#, possible-c-format
msgid "Processing %s"
msgstr "Procesando %s"
#: src/slic3r/GUI/Plater.cpp:1600
-#, c-format
+#, possible-c-format
msgid "Processing input file %s\n"
msgstr "Procesando el archivo de entrada %s\n"
@@ -4821,13 +4722,9 @@ msgid "PrusaSlicer is based on Slic3r by Alessandro Ranellucci and the RepRap co
msgstr "PrusaSlicer está basado en Slic3r de Alessandro Ranellucci y la comunidad RepRap."
#: src/slic3r/GUI/GUI_App.cpp:297
-#, c-format
-msgid ""
-"PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \n"
-"while OpenGL version %s, render %s, vendor %s was detected."
-msgstr ""
-"PrusaSlicer requiere el controlador de gráficos OpenGL 2.0 para que funcione correctamente, \n"
-"mientras que la versión %s OpenGL, renderizado %s, vendedor %s fue detectada."
+#, possible-c-format
+msgid "PrusaSlicer requires OpenGL 2.0 capable graphics driver to run correctly, \nwhile OpenGL version %s, render %s, vendor %s was detected."
+msgstr "PrusaSlicer requiere el controlador de gráficos OpenGL 2.0 para que funcione correctamente, \nmientras que la versión %s OpenGL, renderizado %s, vendedor %s fue detectada."
#: src/libslic3r/PrintConfig.cpp:2153
msgid "Purging after toolchange will done inside this object's infills. This lowers the amount of waste but may result in longer print time due to additional travel moves."
@@ -4852,7 +4749,7 @@ msgstr "Calidad (laminado más lento)"
#: src/slic3r/GUI/GUI_ObjectList.cpp:854 src/slic3r/GUI/GUI_ObjectList.cpp:1139
#: src/slic3r/GUI/GUI_ObjectList.cpp:1145
#: src/slic3r/GUI/GUI_ObjectList.cpp:1377
-#, c-format
+#, possible-c-format
msgid "Quick Add Settings (%s)"
msgstr "Añadir ajustes rápidos (%s)"
@@ -4865,7 +4762,7 @@ msgid "Quick Slice and Save As"
msgstr "Laminado rápido y Guardar como"
#: src/slic3r/GUI/MainFrame.cpp:409
-#, c-format
+#, possible-c-format
msgid "Quit %s"
msgstr "Cerrar %s"
@@ -4886,14 +4783,8 @@ msgid "Ramming customization"
msgstr "Configuración de empuje"
#: src/slic3r/GUI/WipeTowerDialog.cpp:40
-msgid ""
-"Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n"
-"\n"
-"This is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc."
-msgstr ""
-"El empuje señala la extrusión rápida justo antes de un cambio de filamento en una impresora MM de un sólo extrusor. Su propósito es asegurar una forma adecuada para el extremo de filamento que se va a descargar, para que no haya problemas al insertar uno nuevo y para que se pueda volver a insertar este más tarde. Esta fase es importante y diferentes materiales puede precisar diferentes velocidades para obtener la forma correcta. Por este motivo, las velocidades extrusión durante el empuje son ajustables.\n"
-"\n"
-"Este es un ajuste para expertos, ajustarlo incorrectamente podrá producir atascos, que la rueda del extrusor arañe el filamento, etc."
+msgid "Ramming denotes the rapid extrusion just before a tool change in a single-extruder MM printer. Its purpose is to properly shape the end of the unloaded filament so it does not prevent insertion of the new filament and can itself be reinserted later. This phase is important and different materials can require different extrusion speeds to get the good shape. For this reason, the extrusion rates during ramming are adjustable.\n\nThis is an expert-level setting, incorrect adjustment will likely lead to jams, extruder wheel grinding into filament etc."
+msgstr "El empuje señala la extrusión rápida justo antes de un cambio de filamento en una impresora MM de un sólo extrusor. Su propósito es asegurar una forma adecuada para el extremo de filamento que se va a descargar, para que no haya problemas al insertar uno nuevo y para que se pueda volver a insertar este más tarde. Esta fase es importante y diferentes materiales puede precisar diferentes velocidades para obtener la forma correcta. Por este motivo, las velocidades extrusión durante el empuje son ajustables.\n\nEste es un ajuste para expertos, ajustarlo incorrectamente podrá producir atascos, que la rueda del extrusor arañe el filamento, etc."
#: src/slic3r/GUI/WipeTowerDialog.cpp:90
msgid "Ramming line spacing"
@@ -4948,7 +4839,7 @@ msgid "Recent projects"
msgstr "Proyectos recientes"
#: src/slic3r/GUI/PresetHints.cpp:262
-#, c-format
+#, possible-c-format
msgid "Recommended object thin wall thickness for layer height %.2f and"
msgstr "Espesor de pared delgada del objeto recomendado para una altura de capa %.2f y"
@@ -4979,7 +4870,7 @@ msgid "Redo"
msgstr "Rehacer"
#: src/slic3r/GUI/GLCanvas3D.cpp:3497
-#, c-format
+#, possible-c-format
msgid "Redo %1$d Action"
msgid_plural "Redo %1$d Actions"
msgstr[0] "Rehacer %1$d Acción"
@@ -5120,22 +5011,22 @@ msgid "Report an I&ssue"
msgstr "I&nformar de un problema"
#: src/slic3r/GUI/MainFrame.cpp:561
-#, c-format
+#, possible-c-format
msgid "Report an issue on %s"
msgstr "Reportar un problema a %s"
#: src/slic3r/Utils/PresetUpdater.cpp:590
-#, c-format
+#, possible-c-format
msgid "requires max. %s"
msgstr "requiere max. %s"
#: src/slic3r/Utils/PresetUpdater.cpp:588
-#, c-format
+#, possible-c-format
msgid "requires min. %s"
msgstr "requiere min. %s"
#: src/slic3r/Utils/PresetUpdater.cpp:583
-#, c-format
+#, possible-c-format
msgid "requires min. %s and max. %s"
msgstr "requiere un min. %s y un max. %s"
@@ -5281,7 +5172,7 @@ msgid "Rotation angle around the Z axis in degrees."
msgstr "Ángulo de rotación alrededor del eje Z en grados."
#: src/slic3r/GUI/ConfigWizard.cpp:298 src/slic3r/GUI/GUI_App.cpp:658
-#, c-format
+#, possible-c-format
msgid "Run %s"
msgstr "Ejecutar %s"
@@ -5308,12 +5199,12 @@ msgstr "E&nviar para imprimir"
#. TRN Preset
#: src/slic3r/GUI/Tab.cpp:3264
-#, c-format
+#, possible-c-format
msgid "Save %s as:"
msgstr "Guardar %s como:"
#: src/slic3r/GUI/MainFrame.cpp:686
-#, c-format
+#, possible-c-format
msgid "Save %s file as:"
msgstr "Guardar archivo %s como:"
@@ -5335,7 +5226,7 @@ msgstr "Guarda la configuración al archivo especificado."
#. TRN "Save current Settings"
#: src/slic3r/GUI/Tab.cpp:133
-#, c-format
+#, possible-c-format
msgid "Save current %s"
msgstr "Guardar lo actual %s"
@@ -5659,7 +5550,7 @@ msgid "Set number of instances"
msgstr "Establecer número de instancias"
#: src/slic3r/GUI/Plater.cpp:4163
-#, c-format
+#, possible-c-format
msgid "Set numbers of copies to %d"
msgstr "Establecer el número de copias a %d"
@@ -5864,14 +5755,8 @@ msgid "Single Extruder Multi Material"
msgstr "Extrusor único de múltiples materiales"
#: src/slic3r/GUI/Tab.cpp:2023
-msgid ""
-"Single Extruder Multi Material is selected, \n"
-"and all extruders must have the same diameter.\n"
-"Do you want to change the diameter for all extruders to first extruder nozzle diameter value?"
-msgstr ""
-"Multi Material en extrusor único seleccionado,\n"
-"y todos los extrusores deben tener el mismo diámetro.\n"
-"¿Deseas cambiar el diámetro de todos los extrusores al valor del diámetro del nozzle del primer extrusor?"
+msgid "Single Extruder Multi Material is selected, \nand all extruders must have the same diameter.\nDo you want to change the diameter for all extruders to first extruder nozzle diameter value?"
+msgstr "Multi Material en extrusor único seleccionado,\ny todos los extrusores deben tener el mismo diámetro.\n¿Deseas cambiar el diámetro de todos los extrusores al valor del diámetro del nozzle del primer extrusor?"
#: src/slic3r/GUI/Tab.cpp:2240
msgid "Single extruder multimaterial parameters"
@@ -6294,7 +6179,7 @@ msgid "stealth mode"
msgstr "modo silencioso"
#: src/slic3r/GUI/Plater.cpp:3545
-#, c-format
+#, possible-c-format
msgid "STL file exported to %s"
msgstr "Archivo STL exportado a %s"
@@ -6463,27 +6348,17 @@ msgid "Switch to Preview"
msgstr "Cambiar a Previsualización"
#: src/slic3r/GUI/wxExtensions.cpp:2412
-#, c-format
+#, possible-c-format
msgid "Switch to the %s mode"
msgstr "Cambiar al modo %s"
#: src/slic3r/GUI/GUI_App.cpp:752
-msgid ""
-"Switching the language will trigger application restart.\n"
-"You will lose content of the plater."
-msgstr ""
-"Cambiar el idioma necesita reiniciar la aplicación.\n"
-"Perderás todo el contenido situado en la base."
+msgid "Switching the language will trigger application restart.\nYou will lose content of the plater."
+msgstr "Cambiar el idioma necesita reiniciar la aplicación.\nPerderás todo el contenido situado en la base."
#: src/slic3r/GUI/WipeTowerDialog.cpp:327
-msgid ""
-"Switching to simple settings will discard changes done in the advanced mode!\n"
-"\n"
-"Do you want to proceed?"
-msgstr ""
-"¡Cambiar a los ajustes sencillos descartará los cambios realizados en el modo avanzado!\n"
-"\n"
-"¿Quiere continuar?"
+msgid "Switching to simple settings will discard changes done in the advanced mode!\n\nDo you want to proceed?"
+msgstr "¡Cambiar a los ajustes sencillos descartará los cambios realizados en el modo avanzado!\n\n¿Quiere continuar?"
#: src/libslic3r/PrintConfig.cpp:1949
msgid "Synchronize support layers with the object print layers. This is useful with multi-material printers, where the extruder switch is expensive."
@@ -6540,24 +6415,17 @@ msgid "Texture"
msgstr "Textura"
#: src/slic3r/GUI/FirmwareDialog.cpp:530
-#, c-format
+#, possible-c-format
msgid "The %s device could not have been found"
msgstr "El dispositivo %s no se pudo encontrar"
#: src/slic3r/GUI/FirmwareDialog.cpp:417
-#, c-format
-msgid ""
-"The %s device was not found.\n"
-"If the device is connected, please press the Reset button next to the USB connector ..."
-msgstr ""
-"No se encontró el dispositivo %s. \n"
-"Si el dispositivo está conectado, presione el botón Reset al lado del conector USB ..."
+#, possible-c-format
+msgid "The %s device was not found.\nIf the device is connected, please press the Reset button next to the USB connector ..."
+msgstr "No se encontró el dispositivo %s. \nSi el dispositivo está conectado, presione el botón Reset al lado del conector USB ..."
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:640
-msgid ""
-"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
-"Non-uniform scaling of tilted objects is only possible in the World coordinate system,\n"
-"once the rotation is embedded into the object coordinates."
+msgid "The currently manipulated object is tilted (rotation angles are not multiples of 90°).\nNon-uniform scaling of tilted objects is only possible in the World coordinate system,\nonce the rotation is embedded into the object coordinates."
msgstr "El objeto que está manipulando está inclinado (los ángulos de rotación no son múltiplos de 90º). El escalado no uniforme de objetos inclinados sólo es posible en sistema de coordenadas Mundo, una vez que la rotación se ha aplicado a las coordenadas del objeto."
#: src/libslic3r/PrintConfig.cpp:2462
@@ -6646,14 +6514,8 @@ msgid "The object will be raised by this number of layers, and support material
msgstr "El objeto será elevado por este número de capas y se generará material de soporte debajo de él."
#: src/libslic3r/PrintConfig.cpp:2259
-msgid ""
-"The percentage of the bed area. \n"
-"If the print area exceeds the specified value, \n"
-"then a slow tilt will be used, otherwise - a fast tilt"
-msgstr ""
-"El porcentaje del área de la cama. \n"
-"Si el área de impresión excede el valor especificado, \n"
-"entonces se utilizará una inclinación lenta, de lo contrario - una inclinación rápida"
+msgid "The percentage of the bed area. \nIf the print area exceeds the specified value, \nthen a slow tilt will be used, otherwise - a fast tilt"
+msgstr "El porcentaje del área de la cama. \nSi el área de impresión excede el valor especificado, \nentonces se utilizará una inclinación lenta, de lo contrario - una inclinación rápida"
#: src/slic3r/GUI/GUI_App.cpp:831
msgid "The presets on the following tabs were modified"
@@ -6730,10 +6592,7 @@ msgid "The vertical distance between object and support material interface. Sett
msgstr "La distancia vertical entre el objeto y la interfaz del material de soporte. Establecer esto en 0 también evitará que Slic3r use el flujo y la velocidad del puente para la primera capa de los objetos."
#: src/slic3r/GUI/Tab.cpp:2429
-msgid ""
-"The Wipe option is not available when using the Firmware Retraction mode.\n"
-"\n"
-"Shall I disable it in order to enable Firmware Retraction?"
+msgid "The Wipe option is not available when using the Firmware Retraction mode.\n\nShall I disable it in order to enable Firmware Retraction?"
msgstr "La opción Limpiar no está disponible cuando se usa el modo Retracción de firmware. ¿Lo inhabilito para habilitar la Retracción de firmware?"
#: src/libslic3r/Print.cpp:1306
@@ -6773,7 +6632,7 @@ msgid "The Wipe tower is only supported if all objects have the same layer heigh
msgstr "La torre de limpieza sólo se permite si todos los objetos tienen el mismo perfil de altura de capa"
#: src/slic3r/GUI/UpdateDialogs.cpp:127
-#, c-format
+#, possible-c-format
msgid "This %s version: %s"
msgstr "Esta %s versión: %s"
@@ -6793,6 +6652,10 @@ msgstr "Este código personalizado se inserta en cada cambio de capa, justo desp
msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]."
msgstr "Este código personalizado se inserta en cada cambio de capa, justo antes del movimiento Z. Tenga en cuenta que puede usar variables de marcador de posición para todos los ajustes de Slic3r, así como [layer_num] y [layer_z]."
+#: src/libslic3r/PrintConfig.cpp:2057
+msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange."
+msgstr "Este código personalizado se inserta antes de cada cambio de herramienta. Se pueden utilizar variables de marcador de posición para todas las configuraciones de PrusaSlicer, así como {previous_extruder} y {next_extruder}. Cuando se incluye un comando de cambio de herramienta que cambia al extrusor correcto (como T{next_extruder}), PrusaSlicer no emitirá ningún otro comando. Por lo tanto, es posible escribir un comportamiento personalizado antes y después del cambio de herramienta."
+
#: src/libslic3r/PrintConfig.cpp:380
msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order."
msgstr "Este procedimiento final se inserta al final del archivo de salida, antes del código G final de la impresora (y antes de cualquier cambio de herramienta desde este filamento en el caso de impresoras multimateriales). Ten en cuenta que puede usar variables de marcador de posición para todas las configuraciones de PrusaSlicer. Si tienes varios extrusores, el código G se procesa en orden de extrusor."
@@ -6850,28 +6713,13 @@ msgid "This file cannot be loaded in a simple mode. Do you want to switch to an
msgstr "Este archivo no puede ser cargado en un modo sencillo. ¿Quieres cambiar al modo experto?\n"
#: src/slic3r/GUI/Plater.cpp:1658
-msgid ""
-"This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\n"
-"this file as a single object having multiple parts?\n"
-msgstr ""
-"Este archivo contiene varios objetos posicionados en múltiples alturas. En lugar de considerarlos como objetos múltiples, ¿debería considerar\n"
-" este archivo como un único objeto que tiene varias partes?\n"
+msgid "This file contains several objects positioned at multiple heights. Instead of considering them as multiple objects, should I consider\nthis file as a single object having multiple parts?\n"
+msgstr "Este archivo contiene varios objetos posicionados en múltiples alturas. En lugar de considerarlos como objetos múltiples, ¿debería considerar\n este archivo como un único objeto que tiene varias partes?\n"
#: src/slic3r/GUI/FirmwareDialog.cpp:313
-#, c-format
-msgid ""
-"This firmware hex file does not match the printer model.\n"
-"The hex file is intended for: %s\n"
-"Printer reported: %s\n"
-"\n"
-"Do you want to continue and flash this hex file anyway?\n"
-"Please only continue if you are sure this is the right thing to do."
-msgstr ""
-"Este archivo hex del firmware no se corresponde con el modelo de impresora. El archivo hex está preparado para: %s\n"
-"Esta Impresora: %s\n"
-"\n"
-"¿Quieres continuar y grabar este archivo hex de todos modos?\n"
-"Por favor continúa solo si estás seguro de que es lo correcto."
+#, possible-c-format
+msgid "This firmware hex file does not match the printer model.\nThe hex file is intended for: %s\nPrinter reported: %s\n\nDo you want to continue and flash this hex file anyway?\nPlease only continue if you are sure this is the right thing to do."
+msgstr "Este archivo hex del firmware no se corresponde con el modelo de impresora. El archivo hex está preparado para: %s\nEsta Impresora: %s\n\n¿Quieres continuar y grabar este archivo hex de todos modos?\nPor favor continúa solo si estás seguro de que es lo correcto."
#: src/libslic3r/PrintConfig.cpp:278
msgid "This flag enables the automatic cooling logic that adjusts print speed and fan speed according to layer printing time."
@@ -6947,12 +6795,8 @@ msgid "This matrix describes volumes (in cubic milimetres) required to purge the
msgstr "Esta matriz detalla los volúmenes (en milímetros cúbicos) necesarios para purgar el nuevo filamento en la torre de limpieza para cualquier par de filamentos."
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:643
-msgid ""
-"This operation is irreversible.\n"
-"Do you want to proceed?"
-msgstr ""
-"Esta operación es irreversible. \n"
-"¿Deseas continuar?"
+msgid "This operation is irreversible.\nDo you want to proceed?"
+msgstr "Esta operación es irreversible. \n¿Deseas continuar?"
#: src/libslic3r/PrintConfig.cpp:1372
msgid "This option sets the number of perimeters to generate for each layer. Note that Slic3r may increase this number automatically when it detects sloping surfaces which benefit from a higher number of perimeters if the Extra Perimeters option is enabled."
@@ -7015,16 +6859,9 @@ msgid "This vector saves required volumes to change from/to each tool used on th
msgstr "Este vector guarda los volúmenes necesarios para cambiar desde/hasta cada herramienta usada en la torre de limpieza. Estos valores se emplean para simplificar la creación de los volúmenes totales de purga más abajo."
#: src/slic3r/GUI/UpdateDialogs.cpp:118
-#, c-format
-msgid ""
-"This version of %s is not compatible with currently installed configuration bundles.\n"
-"This probably happened as a result of running an older %s after using a newer one.\n"
-"\n"
-"You may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n"
-msgstr ""
-"Esta versión de %s no es compatible con los grupos de configuraciones instaladas. Esto sucede probablemente por ejecutar una versión de %s después de haber usado una más reciente.\n"
-"\n"
-"Puedes salir de %s e intentarlo de nuevo con una versión más reciente, o puedes volver a ejecutar la configuración inicial. Al hacerlo se creará una copia de respaldo de la configuración existente antes de instalar la nueva compatible con esta versión de %s.\n"
+#, possible-c-format
+msgid "This version of %s is not compatible with currently installed configuration bundles.\nThis probably happened as a result of running an older %s after using a newer one.\n\nYou may either exit %s and try again with a newer version, or you may re-run the initial configuration. Doing so will create a backup snapshot of the existing configuration before installing files compatible with this %s.\n"
+msgstr "Esta versión de %s no es compatible con los grupos de configuraciones instaladas. Esto sucede probablemente por ejecutar una versión de %s después de haber usado una más reciente.\n\nPuedes salir de %s e intentarlo de nuevo con una versión más reciente, o puedes volver a ejecutar la configuración inicial. Al hacerlo se creará una copia de respaldo de la configuración existente antes de instalar la nueva compatible con esta versión de %s.\n"
#: src/libslic3r/PrintConfig.cpp:2284
msgid "This will apply a gamma correction to the rasterized 2D polygons. A gamma value of zero means thresholding with the threshold in the middle. This behaviour eliminates antialiasing without losing holes in polygons."
@@ -7083,7 +6920,7 @@ msgid "To parts"
msgstr "A las piezas"
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212
-#, c-format
+#, possible-c-format
msgid "Toggle %c axis mirroring"
msgstr "Activar reflejo del eje %c"
@@ -7181,7 +7018,7 @@ msgid "Undo"
msgstr "Deshacer"
#: src/slic3r/GUI/GLCanvas3D.cpp:3497
-#, c-format
+#, possible-c-format
msgid "Undo %1$d Action"
msgid_plural "Undo %1$d Actions"
msgstr[0] "Deshacer %1$d Acción"
@@ -7220,20 +7057,12 @@ msgid "UNLOCKED LOCK"
msgstr "CANDADO ABIERTO"
#: src/slic3r/GUI/Tab.cpp:3362
-msgid ""
-"UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\n"
-"Click to reset all settings for current option group to the system (or default) values."
-msgstr ""
-"El icono de CANDADO DESBLOQUEADO indica que se cambiaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados) para el grupo de opciones actual.\n"
-"Haz clic para restablecer todas las configuraciones para el grupo de opciones actual a los valores del sistema (o predeterminados)."
+msgid "UNLOCKED LOCK icon indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\nClick to reset all settings for current option group to the system (or default) values."
+msgstr "El icono de CANDADO DESBLOQUEADO indica que se cambiaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados) para el grupo de opciones actual.\nHaz clic para restablecer todas las configuraciones para el grupo de opciones actual a los valores del sistema (o predeterminados)."
#: src/slic3r/GUI/Tab.cpp:3377
-msgid ""
-"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\n"
-"Click to reset current value to the system (or default) value."
-msgstr ""
-"El icono de CANDADO DESBLOQUEADO indica que se cambiaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados).\n"
-"Haz clic para reiniciar el valor actual a los del sistema (o predeterminados)"
+msgid "UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\nClick to reset current value to the system (or default) value."
+msgstr "El icono de CANDADO DESBLOQUEADO indica que se cambiaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados).\nHaz clic para reiniciar el valor actual a los del sistema (o predeterminados)"
#: src/slic3r/GUI/GUI_Preview.cpp:245
msgid "Unretractions"
@@ -7280,7 +7109,7 @@ msgid "Unsupported selection"
msgstr "Selección no soportada"
#: src/libslic3r/GCode/PreviewData.cpp:495
-#, c-format
+#, possible-c-format
msgid "up to %.2f mm"
msgstr "hasta %.2f mm"
@@ -7493,12 +7322,12 @@ msgid "Welcome"
msgstr "Bienvenido"
#: src/slic3r/GUI/ConfigWizard.cpp:296
-#, c-format
+#, possible-c-format
msgid "Welcome to the %s Configuration Assistant"
msgstr "Bienvenido al %s Asistente de Configuración"
#: src/slic3r/GUI/ConfigWizard.cpp:298
-#, c-format
+#, possible-c-format
msgid "Welcome to the %s Configuration Wizard"
msgstr "Bienvenido al %s Ayudante de Configuración"
@@ -7659,17 +7488,8 @@ msgid "World coordinates"
msgstr "Coordenadas mundiales"
#: src/slic3r/GUI/UpdateDialogs.cpp:76
-msgid ""
-"Would you like to install it?\n"
-"\n"
-"Note that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n"
-"\n"
-"Updated configuration bundles:"
-msgstr ""
-"¿Te gustaría instalarlo?\n"
-"\n"
-"Ten en cuenta que primero se creará una instantánea de la configuración. Así que se puede recuperar en cualquier momento en caso de que hubiera algún problema con la nueva versión.\n"
-"Updated configuration bundles:"
+msgid "Would you like to install it?\n\nNote that a full configuration snapshot will be created first. It can then be restored at any time should there be a problem with the new version.\n\nUpdated configuration bundles:"
+msgstr "¿Te gustaría instalarlo?\n\nTen en cuenta que primero se creará una instantánea de la configuración. Así que se puede recuperar en cualquier momento en caso de que hubiera algún problema con la nueva versión.\nUpdated configuration bundles:"
#: src/libslic3r/Zipper.cpp:95
msgid "write calledback failed"
@@ -7740,7 +7560,7 @@ msgid "You can't load SLA project if there is at least one multi-part object on
msgstr "No puede cargar el proyecto SLA si hay al menos un objeto de varias partes en la base"
#: src/slic3r/GUI/Plater.cpp:1746
-#, c-format
+#, possible-c-format
msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part"
msgstr "No puede agregar el(los) objeto(s) desde % s porque uno o algunos de ellos son de varias piezas"
@@ -7753,12 +7573,12 @@ msgid "You may need to update your graphics card driver."
msgstr "Puede que necesites actualizar tu tarjeta de gráficos."
#: src/slic3r/GUI/Preferences.cpp:130
-#, c-format
+#, possible-c-format
msgid "You need to restart %s to make the changes effective."
msgstr "Es necesario reiniciar %s para hacer los cambios efectivos."
#: src/slic3r/GUI/GUI_ObjectList.cpp:2415
-#, c-format
+#, possible-c-format
msgid "You started your selection with %s Item."
msgstr "Has empezado la selección con %s Items."
diff --git a/resources/localization/fr/PrusaSlicer.mo b/resources/localization/fr/PrusaSlicer.mo
index ca9fe45e1..830193291 100644
--- a/resources/localization/fr/PrusaSlicer.mo
+++ b/resources/localization/fr/PrusaSlicer.mo
Binary files differ
diff --git a/resources/localization/fr/PrusaSlicer_fr.po b/resources/localization/fr/PrusaSlicer_fr.po
index 6378f0eb3..9a4d5c8a8 100644
--- a/resources/localization/fr/PrusaSlicer_fr.po
+++ b/resources/localization/fr/PrusaSlicer_fr.po
@@ -1771,6 +1771,10 @@ msgstr "Compensation de l'effet patte d'éléphant"
msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation."
msgstr "L'élévation est trop basse pour l'objet. Utilisez la fonction \"Socle autour de l'objet\" pour imprimer l'objet sans élévation."
+#: src/libslic3r/SLAPrint.cpp:678
+msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation."
+msgstr "L'Élévation est trop basse pour cet objet. utilisez la fonction \"Socle autour de l'objet\" pour imprimer l'objet sans élévation."
+
#: src/libslic3r/PrintConfig.cpp:1044
msgid "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals into the G-code to let the firmware show accurate remaining time. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode."
msgstr "Émet M73 P[pourcentage imprimé] R[temps restant en minutes] à 1 minute d'intervalle dans le G-code afin que le firmware puisse indiquer précisément le temps restant. Jusqu'à présent seul le firmware Prusa i3 MK3 reconnait M73. Par ailleurs le firmware i3 MK3 supporte M73 Qxx Sxx pour le mode silencieux."
@@ -6648,6 +6652,10 @@ msgstr "Ce code personnalisé est inséré à chaque changement de couche, juste
msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]."
msgstr "Ce code personnalisé est inséré à chaque changement de couche, juste avant le mouvement en Z. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r de même que [layer_num] et [layer_z]."
+#: src/libslic3r/PrintConfig.cpp:2057
+msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange."
+msgstr "Ce code personnalisé est inséré avant chaque changement d'outil. Des variables génériques pour n'importe quels réglages PrusaSlicer ainsi que {previous_extruder} et {next_extruder} peuvent être utilisées. Lorsqu'une commande de changement d'outil qui occasionne un changement concernant le bon extrudeur est incluse (comme T{next_extruder}), PrusaSlicer n'émettra pas d'autres commandes de ce type. Il est donc possible de rédiger le script d'un comportement personnalisé à la fois avant et après le changement d'outil."
+
#: src/libslic3r/PrintConfig.cpp:380
msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order."
msgstr "Cette procédure de fin est insérée à la fin d'un fichier de sortie, avant le gcode de fin de l'imprimante (et avant tout changement d'outil de ce filament dans le cas des imprimantes multimatériaux). Notez que vous pouvez utiliser des variables génériques pour tous les réglages PrusaSlicer. Si vous avez des extrudeurs multiples, le gcode est traité dans l'ordre des extrudeurs."
diff --git a/resources/localization/it/PrusaSlicer.mo b/resources/localization/it/PrusaSlicer.mo
index 7ea0aeb99..b8a205ca8 100644
--- a/resources/localization/it/PrusaSlicer.mo
+++ b/resources/localization/it/PrusaSlicer.mo
Binary files differ
diff --git a/resources/localization/it/PrusaSlicer_it.po b/resources/localization/it/PrusaSlicer_it.po
index 1827e5bc1..3d0d1706d 100644
--- a/resources/localization/it/PrusaSlicer_it.po
+++ b/resources/localization/it/PrusaSlicer_it.po
@@ -1771,6 +1771,10 @@ msgstr "Compensazione zampa d'elefante"
msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation."
msgstr "L'elevazione è troppo bassa per l'oggetto. Utilizza la funzione \"Pad intorno all'oggetto\" per stampare l'oggetto senza elevazione."
+#: src/libslic3r/SLAPrint.cpp:678
+msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation."
+msgstr "L'elevazione è troppo bassa per l'oggetto. Utilizza la funzione \"Pad intorno all'oggetto\" per stampare l'oggetto senza elevazione."
+
#: src/libslic3r/PrintConfig.cpp:1044
msgid "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals into the G-code to let the firmware show accurate remaining time. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode."
msgstr "Inserisce M73 P[percent printed] R[remaining time in minutes] ad intervalli di un minuto nel G-code per permettere al firmware di mostrare un tempo residuo accurato. Al momento solo il firmware della Prusa i3 MK3 riconosce M73. Il firmware della i3 MK3 supporta il codice M73 Qxx Sxx anche per la modalità silenziosa."
@@ -6648,6 +6652,10 @@ msgstr "Questo codice personalizzato è inserito ad ogni cambio layer, subito do
msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]."
msgstr "Questo codice personalizzato è inserito ad ogni cambio layer, subito prima del movimento Z. Si fa presente che puoi usare variabili sostitutive per tutte le impostazioni di Slic3r sia per [layer_num] che per [layer_z]."
+#: src/libslic3r/PrintConfig.cpp:2057
+msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange."
+msgstr "Questo codice personalizzato è inserito prima di ogni cambio attrezzo. Possono essere usate delle variabili segnaposto per tutte le impostazioni di PrusaSlicer come {previous_extruder} e {next_extruder}. Quando viene incluso un comando di cambio attrezzo che cambia all'estrusore corretto (come T{next_extruder}), PrusaSlicer non emetterà altri comandi simili. È per tanto possibile elaborare un comportamento personalizzato sia prima che dopo il cambio attrezzo."
+
#: src/libslic3r/PrintConfig.cpp:380
msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order."
msgstr "Questa procedura finale è inserita alla fine del file di output, prima che la stampante completi il gcode (e prima di qualunque cambio attrezzo da questo filamento in caso di stampanti multi-material). Da notare che è possibile inserire variabili segnaposto per tutte le impostazioni di PrusaSlicer. Se hai estrusori multipli, il gcode è processato nell'ordine degli estrusori."
@@ -6780,7 +6788,7 @@ msgstr "Questa è la massima altezza layer stampabile per questo estrusore, usat
#: src/libslic3r/PrintConfig.cpp:1225
msgid "This is the lowest printable layer height for this extruder and limits the resolution for variable layer height. Typical values are between 0.05 mm and 0.1 mm."
-msgstr "Questa è l'altezza minima stampabile per questo estrusore e limita la risoluzione per l'altezza variabile di layer. Valori tipici sono compresi tra 0.05 mm e 0.1 mm."
+msgstr "Questa è l'altezza minima stampabile per questo estrusore e limita la risoluzione per l'altezza variabile dei layer. Valori tipici sono compresi tra 0.05 mm e 0.1 mm."
#: src/libslic3r/PrintConfig.cpp:2139
msgid "This matrix describes volumes (in cubic milimetres) required to purge the new filament on the wipe tower for any given pair of tools."
@@ -6832,7 +6840,7 @@ msgstr "Questa impostazione rappresenta la PWM minima (modulazione di larghezza
#: src/libslic3r/PrintConfig.cpp:1801
msgid "This start procedure is inserted at the beginning, after any printer start gcode (and after any toolchange to this filament in case of multi-material printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order."
-msgstr "Questa procedura di inizio è inserita all'inizio, dopo un qualsiasi gcode iniziale (e dopo un qualunque cambio strumento per questo filamento nel caso di stampanti multi-material). Viene utilizzato per scavalcare le impostazioni per un filamento specifico. Se PrusaSlicer rileva M104, M109, M140 o M190 nei codici personalizzati, questi comandi non vengono anteposti automaticamente così si è liberi di personalizzare liberamente l'ordine dei comandi di riscaldamento e altre azioni personalizzate. Da notare che è possibile utilizzare delle variabili segnaposto per tutte le impostazioni di PrusaSlicer, così è possibile inserire un comando \"M109 S[first_layer_temperature]\" ovunque lo si desideri. Se hai estrusori multipli, il gcode è processato nell'ordine degli estrusori."
+msgstr "Questa procedura di inizio è inserita all'inizio, dopo un qualsiasi gcode iniziale (e dopo un qualunque cambio attrezzo per questo filamento nel caso di stampanti multi-material). Viene utilizzato per scavalcare le impostazioni per un filamento specifico. Se PrusaSlicer rileva M104, M109, M140 o M190 nei codici personalizzati, questi comandi non vengono anteposti automaticamente così si è liberi di personalizzare liberamente l'ordine dei comandi di riscaldamento e altre azioni personalizzate. Da notare che è possibile utilizzare delle variabili segnaposto per tutte le impostazioni di PrusaSlicer, così è possibile inserire un comando \"M109 S[first_layer_temperature]\" ovunque lo si desideri. Se hai estrusori multipli, il gcode è processato nell'ordine degli estrusori."
#: src/libslic3r/PrintConfig.cpp:1786
msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
diff --git a/resources/localization/pl/PrusaSlicer.mo b/resources/localization/pl/PrusaSlicer.mo
index 382f79c91..e7683ee03 100644
--- a/resources/localization/pl/PrusaSlicer.mo
+++ b/resources/localization/pl/PrusaSlicer.mo
Binary files differ
diff --git a/resources/localization/pl/PrusaSlicer_pl.po b/resources/localization/pl/PrusaSlicer_pl.po
index a125bc76d..e09c143c2 100644
--- a/resources/localization/pl/PrusaSlicer_pl.po
+++ b/resources/localization/pl/PrusaSlicer_pl.po
@@ -1771,6 +1771,10 @@ msgstr "Kompensacja \"stopy słonia\""
msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation."
msgstr "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół modelu\", aby wydrukować model bez podniesienia."
+#: src/libslic3r/SLAPrint.cpp:678
+msgid "Elevation is too low for object. Use the \"Pad around object\" feature to print the object without elevation."
+msgstr "Podniesienie zbyt małe dla modelu. Użyj funkcji \"Podkładka wokół modelu\", aby wydrukować model bez podniesienia."
+
#: src/libslic3r/PrintConfig.cpp:1044
msgid "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals into the G-code to let the firmware show accurate remaining time. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode."
msgstr "Umieść M73 P[postęp w procentach] R[pozostały czas w minutach] co 1 minutę w G-code, aby pozwolić firmware na wyświetlanie dokładnego pozostałego czasu. Na ten moment jedynie firmware drukarki Prusa i3 MK3 rozpoznaje komendę M73. Firmware i3 MK3 wspiera również M73 Qxx Sxx dla trybu Stealth."
@@ -6650,6 +6654,10 @@ msgstr "Ten kod jest wykonywany przy każdej zmianie warstwy - zaraz po podniesi
msgid "This custom code is inserted at every layer change, right before the Z move. Note that you can use placeholder variables for all Slic3r settings as well as [layer_num] and [layer_z]."
msgstr "Ten kod jest wykonywany przy każdej zmianie warstwy, zaraz przed podniesieniem ekstrudera na wysokość nowej warstwy. Pamiętaj, że możesz użyć zmiennych typu placeholder dla wszystkich ustawień PrusaSlicer, jak np. [layer_num] (numer warstwy) i [layer_z] (położenie warstwy w osi Z)."
+#: src/libslic3r/PrintConfig.cpp:2057
+msgid "This custom code is inserted before every toolchange. Placeholder variables for all PrusaSlicer settings as well as {previous_extruder} and {next_extruder} can be used. When a tool-changing command which changes to the correct extruder is included (such as T{next_extruder}), PrusaSlicer will emit no other such command. It is therefore possible to script custom behaviour both before and after the toolchange."
+msgstr "Ten kod jest wykonywany przy każdej zmianie narzędzia (filamentu). Możesz użyć zmiennych dla wszystkich ustawień PrusaSlicer, jak i również {previous_extruder} i {next_extruder}. Po wysłaniu komendy zmiany narzędzia, która zmienia obecny ekstruder (np. T{next_extruder}), PrusaSlicer nie powtórzy tej komendy. Możliwe jest więc zdefiniowanie własnego zachowania zarówno przed jak i po zmianie narzędzia."
+
#: src/libslic3r/PrintConfig.cpp:380
msgid "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any toolchange from this filament in case of multimaterial printers). Note that you can use placeholder variables for all PrusaSlicer settings. If you have multiple extruders, the gcode is processed in extruder order."
msgstr "Ta procedura końcowa jest dodawana na końcu pliku wyjściowego, przed kodem końcowym (jak i również przed każdą zmianą z tego filamentu na kolejny w przypadku drukarek wielomateriałowych). Zauważ, że możesz używać zmiennych dla wszystkich ustawień PrusaSlicer. Jeśli masz kilka ekstruderów, to G-code jest wykonywany w ich kolejności."
diff --git a/src/admesh/stlinit.cpp b/src/admesh/stlinit.cpp
index bbf6d3dd5..693aad086 100644
--- a/src/admesh/stlinit.cpp
+++ b/src/admesh/stlinit.cpp
@@ -179,12 +179,12 @@ static bool stl_read(stl_file *stl, FILE *fp, int first_facet, bool first)
// Some G-code generators tend to produce text after "endloop" and "endfacet". Just ignore it.
char buf[2048];
fgets(buf, 2047, fp);
- bool endloop_ok = strncmp(buf, "endloop", 7) == 0 && (buf[7] == '\n' || buf[7] == ' ' || buf[7] == '\t');
+ bool endloop_ok = strncmp(buf, "endloop", 7) == 0 && (buf[7] == '\r' || buf[7] == '\n' || buf[7] == ' ' || buf[7] == '\t');
assert(endloop_ok);
// Skip the trailing whitespaces and empty lines.
fscanf(fp, " ");
fgets(buf, 2047, fp);
- bool endfacet_ok = strncmp(buf, "endfacet", 8) == 0 && (buf[8] == '\n' || buf[8] == ' ' || buf[8] == '\t');
+ bool endfacet_ok = strncmp(buf, "endfacet", 8) == 0 && (buf[8] == '\r' || buf[8] == '\n' || buf[8] == ' ' || buf[8] == '\t');
assert(endfacet_ok);
if (res_normal != 3 || res_outer_loop != 0 || res_vertex1 != 3 || res_vertex2 != 3 || res_vertex3 != 3 || ! endloop_ok || ! endfacet_ok) {
BOOST_LOG_TRIVIAL(error) << "Something is syntactically very wrong with this ASCII STL! ";
diff --git a/src/libslic3r/CMakeLists.txt b/src/libslic3r/CMakeLists.txt
index 85e11eded..97e0fc09b 100644
--- a/src/libslic3r/CMakeLists.txt
+++ b/src/libslic3r/CMakeLists.txt
@@ -165,6 +165,8 @@ add_library(libslic3r STATIC
TriangleMesh.hpp
utils.cpp
Utils.hpp
+ Time.cpp
+ Time.hpp
MTUtils.hpp
Zipper.hpp
Zipper.cpp
diff --git a/src/libslic3r/GCode/Analyzer.cpp b/src/libslic3r/GCode/Analyzer.cpp
index 5250c90b0..20f0483b0 100644
--- a/src/libslic3r/GCode/Analyzer.cpp
+++ b/src/libslic3r/GCode/Analyzer.cpp
@@ -529,7 +529,10 @@ void GCodeAnalyzer::_processT(const std::string& cmd)
if (_get_extruder_id() != id)
{
if (id >= m_extruders_count)
- BOOST_LOG_TRIVIAL(error) << "GCodeAnalyzer encountered an invalid toolchange, maybe from a custom gcode.";
+ {
+ if (m_extruders_count > 1)
+ BOOST_LOG_TRIVIAL(error) << "GCodeAnalyzer encountered an invalid toolchange, maybe from a custom gcode.";
+ }
else
_set_extruder_id(id);
diff --git a/src/libslic3r/SLA/SLARaster.hpp b/src/libslic3r/SLA/SLARaster.hpp
index d3bd52d92..8b27fd153 100644
--- a/src/libslic3r/SLA/SLARaster.hpp
+++ b/src/libslic3r/SLA/SLARaster.hpp
@@ -68,15 +68,14 @@ public:
/// Type that represents a resolution in pixels.
struct Resolution {
- unsigned width_px;
- unsigned height_px;
+ size_t width_px;
+ size_t height_px;
- inline Resolution(unsigned w = 0, unsigned h = 0):
- width_px(w), height_px(h) {}
+ inline Resolution(size_t w = 0, size_t h = 0)
+ : width_px(w), height_px(h)
+ {}
- inline unsigned pixels() const /*noexcept*/ {
- return width_px * height_px;
- }
+ inline size_t pixels() const { return width_px * height_px; }
};
/// Types that represents the dimension of a pixel in millimeters.
diff --git a/src/libslic3r/SLA/SLARasterWriter.cpp b/src/libslic3r/SLA/SLARasterWriter.cpp
index f7c3925ac..3e6f015d4 100644
--- a/src/libslic3r/SLA/SLARasterWriter.cpp
+++ b/src/libslic3r/SLA/SLARasterWriter.cpp
@@ -1,5 +1,7 @@
#include "SLARasterWriter.hpp"
#include "libslic3r/Zipper.hpp"
+#include "libslic3r/Time.hpp"
+
#include "ExPolygon.hpp"
#include <libnest2d/backends/clipper/clipper_polygon.hpp>
@@ -10,25 +12,13 @@ namespace Slic3r { namespace sla {
std::string SLARasterWriter::createIniContent(const std::string& projectname) const
{
- auto expt_str = std::to_string(m_exp_time_s);
- auto expt_first_str = std::to_string(m_exp_time_first_s);
- auto layerh_str = std::to_string(m_layer_height);
-
- const std::string cnt_fade_layers = std::to_string(m_cnt_fade_layers);
- const std::string cnt_slow_layers = std::to_string(m_cnt_slow_layers);
- const std::string cnt_fast_layers = std::to_string(m_cnt_fast_layers);
- const std::string used_material = std::to_string(m_used_material);
-
- return std::string(
- "action = print\n"
- "jobDir = ") + projectname + "\n" +
- "expTime = " + expt_str + "\n"
- "expTimeFirst = " + expt_first_str + "\n"
- "numFade = " + cnt_fade_layers + "\n"
- "layerHeight = " + layerh_str + "\n"
- "usedMaterial = " + used_material + "\n"
- "numSlow = " + cnt_slow_layers + "\n"
- "numFast = " + cnt_fast_layers + "\n";
+ std::string out("action = print\njobDir = ");
+ out += projectname + "\n";
+
+ for (auto &param : m_config)
+ out += param.first + " = " + param.second + "\n";
+
+ return out;
}
void SLARasterWriter::flpXY(ClipperLib::Polygon &poly)
@@ -53,38 +43,14 @@ void SLARasterWriter::flpXY(ExPolygon &poly)
}
}
-SLARasterWriter::SLARasterWriter(const SLAPrinterConfig &cfg,
- const SLAMaterialConfig &mcfg,
- double layer_height)
+SLARasterWriter::SLARasterWriter(const Raster::Resolution &res,
+ const Raster::PixelDim &pixdim,
+ const std::array<bool, 2> &mirror,
+ double gamma)
+ : m_res(res), m_pxdim(pixdim), m_mirror(mirror), m_gamma(gamma)
{
- double w = cfg.display_width.getFloat();
- double h = cfg.display_height.getFloat();
- auto pw = unsigned(cfg.display_pixels_x.getInt());
- auto ph = unsigned(cfg.display_pixels_y.getInt());
-
- m_mirror[X] = cfg.display_mirror_x.getBool();
-
// PNG raster will implicitly do an Y mirror
- m_mirror[Y] = ! cfg.display_mirror_y.getBool();
-
- auto ro = cfg.display_orientation.getInt();
-
- if(ro == roPortrait) {
- std::swap(w, h);
- std::swap(pw, ph);
- m_o = roPortrait;
-
- // XY flipping implicitly does an X mirror
- m_mirror[X] = ! m_mirror[X];
- } else m_o = roLandscape;
-
- m_res = Raster::Resolution(pw, ph);
- m_pxdim = Raster::PixelDim(w/pw, h/ph);
- m_exp_time_s = mcfg.exposure_time.getFloat();
- m_exp_time_first_s = mcfg.initial_exposure_time.getFloat();
- m_layer_height = layer_height;
-
- m_gamma = cfg.gamma_correction.getFloat();
+ m_mirror[1] = !m_mirror[1];
}
void SLARasterWriter::save(const std::string &fpath, const std::string &prjname)
@@ -121,15 +87,44 @@ void SLARasterWriter::save(const std::string &fpath, const std::string &prjname)
}
}
-void SLARasterWriter::set_statistics(const std::vector<double> statistics)
+namespace {
+
+std::string get_cfg_value(const DynamicPrintConfig &cfg, const std::string &key)
{
- if (statistics.size() != psCnt)
- return;
+ std::string ret;
+
+ if (cfg.has(key)) {
+ auto opt = cfg.option(key);
+ if (opt) ret = opt->serialize();
+ }
- m_used_material = statistics[psUsedMaterial];
- m_cnt_fade_layers = int(statistics[psNumFade]);
- m_cnt_slow_layers = int(statistics[psNumSlow]);
- m_cnt_fast_layers = int(statistics[psNumFast]);
+ return ret;
+}
+
+} // namespace
+
+void SLARasterWriter::set_config(const DynamicPrintConfig &cfg)
+{
+ m_config["layerHeight"] = get_cfg_value(cfg, "layer_height");
+ m_config["expTime"] = get_cfg_value(cfg, "exposure_time");
+ m_config["expTimeFirst"] = get_cfg_value(cfg, "initial_exposure_time");
+ m_config["materialName"] = get_cfg_value(cfg, "sla_material_settings_id");
+ m_config["printerModel"] = get_cfg_value(cfg, "printer_model");
+ m_config["printerVariant"] = get_cfg_value(cfg, "printer_variant");
+ m_config["printerProfile"] = get_cfg_value(cfg, "printer_settings_id");
+ m_config["printProfile"] = get_cfg_value(cfg, "sla_print_settings_id");
+
+ m_config["fileCreationTimestamp"] = Utils::current_utc_time2str();
+ m_config["prusaSlicerVersion"] = SLIC3R_BUILD_ID;
+}
+
+void SLARasterWriter::set_statistics(const PrintStatistics &stats)
+{
+ m_config["usedMaterial"] = std::to_string(stats.used_material);
+ m_config["numFade"] = std::to_string(stats.num_fade);
+ m_config["numSlow"] = std::to_string(stats.num_slow);
+ m_config["numFast"] = std::to_string(stats.num_fast);
+ m_config["printTime"] = std::to_string(stats.estimated_print_time_s);
}
} // namespace sla
diff --git a/src/libslic3r/SLA/SLARasterWriter.hpp b/src/libslic3r/SLA/SLARasterWriter.hpp
index 7133d2dde..b9202c464 100644
--- a/src/libslic3r/SLA/SLARasterWriter.hpp
+++ b/src/libslic3r/SLA/SLARasterWriter.hpp
@@ -3,8 +3,10 @@
// For png export of the sliced model
#include <fstream>
+#include <string>
#include <sstream>
#include <vector>
+#include <map>
#include <array>
#include "libslic3r/PrintConfig.hpp"
@@ -23,20 +25,19 @@ namespace Slic3r { namespace sla {
class SLARasterWriter
{
public:
- enum RasterOrientation {
+ enum Orientation {
roLandscape,
roPortrait
};
// Used for addressing parameters of set_statistics()
- enum ePrintStatistics
- {
- psUsedMaterial = 0,
- psNumFade,
- psNumSlow,
- psNumFast,
-
- psCnt
+ struct PrintStatistics
+ {
+ double used_material = 0.;
+ double estimated_print_time_s = 0.;
+ size_t num_fade = 0;
+ size_t num_slow = 0;
+ size_t num_fast = 0;
};
private:
@@ -47,21 +48,13 @@ private:
RawBytes rawbytes;
Layer() = default;
- Layer(const Layer&) = delete; // The image is big, do not copy by accident
- Layer& operator=(const Layer&) = delete;
- // /////////////////////////////////////////////////////////////////////
- // FIXME: the following is needed for MSVC2013 compatibility
- // /////////////////////////////////////////////////////////////////////
-
- // Layer(Layer&& m) = default;
- // Layer& operator=(Layer&&) = default;
- Layer(Layer &&m):
- raster(std::move(m.raster)), rawbytes(std::move(m.rawbytes)) {}
- Layer& operator=(Layer &&m) {
- raster = std::move(m.raster); rawbytes = std::move(m.rawbytes);
- return *this;
- }
+ // The image is big, do not copy by accident
+ Layer(const Layer&) = delete;
+ Layer& operator=(const Layer&) = delete;
+
+ Layer(Layer &&m) = default;
+ Layer &operator=(Layer &&) = default;
};
// We will save the compressed PNG data into RawBytes type buffers in
@@ -69,66 +62,46 @@ private:
std::vector<Layer> m_layers_rst;
Raster::Resolution m_res;
Raster::PixelDim m_pxdim;
- double m_exp_time_s = .0, m_exp_time_first_s = .0;
- double m_layer_height = .0;
- RasterOrientation m_o = roPortrait;
std::array<bool, 2> m_mirror;
-
double m_gamma;
-
- double m_used_material = 0.0;
- int m_cnt_fade_layers = 0;
- int m_cnt_slow_layers = 0;
- int m_cnt_fast_layers = 0;
-
+
+ std::map<std::string, std::string> m_config;
+
std::string createIniContent(const std::string& projectname) const;
static void flpXY(ClipperLib::Polygon& poly);
static void flpXY(ExPolygon& poly);
public:
-
- SLARasterWriter(const SLAPrinterConfig& cfg,
- const SLAMaterialConfig& mcfg,
- double layer_height);
+ SLARasterWriter(const Raster::Resolution &res,
+ const Raster::PixelDim &pixdim,
+ const std::array<bool, 2> &mirror,
+ double gamma = 1.);
SLARasterWriter(const SLARasterWriter& ) = delete;
SLARasterWriter& operator=(const SLARasterWriter&) = delete;
-
- // /////////////////////////////////////////////////////////////////////////
- // FIXME: the following is needed for MSVC2013 compatibility
- // /////////////////////////////////////////////////////////////////////////
-
- // SLARasterWriter(SLARasterWriter&& m) = default;
- // SLARasterWriter& operator=(SLARasterWriter&&) = default;
- SLARasterWriter(SLARasterWriter&& m):
- m_layers_rst(std::move(m.m_layers_rst)),
- m_res(m.m_res),
- m_pxdim(m.m_pxdim),
- m_exp_time_s(m.m_exp_time_s),
- m_exp_time_first_s(m.m_exp_time_first_s),
- m_layer_height(m.m_layer_height),
- m_o(m.m_o),
- m_mirror(std::move(m.m_mirror)),
- m_gamma(m.m_gamma),
- m_used_material(m.m_used_material),
- m_cnt_fade_layers(m.m_cnt_fade_layers),
- m_cnt_slow_layers(m.m_cnt_slow_layers),
- m_cnt_fast_layers(m.m_cnt_fast_layers)
- {}
-
- // /////////////////////////////////////////////////////////////////////////
+ SLARasterWriter(SLARasterWriter&& m) = default;
+ SLARasterWriter& operator=(SLARasterWriter&&) = default;
inline void layers(unsigned cnt) { if(cnt > 0) m_layers_rst.resize(cnt); }
inline unsigned layers() const { return unsigned(m_layers_rst.size()); }
- template<class Poly> void draw_polygon(const Poly& p, unsigned lyr) {
+ template<class Poly> void draw_polygon(const Poly& p, unsigned lyr,
+ Orientation o = roPortrait)
+ {
assert(lyr < m_layers_rst.size());
- if(m_o == roPortrait) {
- Poly poly(p); flpXY(poly);
+
+ switch (o) {
+ case roPortrait: {
+ Poly poly(p);
+ flpXY(poly);
m_layers_rst[lyr].raster.draw(poly);
+ break;
+ }
+ case roLandscape:
+ m_layers_rst[lyr].raster.draw(p);
+ break;
}
- else m_layers_rst[lyr].raster.draw(p);
}
inline void begin_layer(unsigned lyr) {
@@ -156,9 +129,11 @@ public:
}
}
- void save(const std::string& fpath, const std::string& prjname = "");
+ void save(const std::string &fpath, const std::string &prjname = "");
- void set_statistics(const std::vector<double> statistics);
+ void set_statistics(const PrintStatistics &statistics);
+
+ void set_config(const DynamicPrintConfig &cfg);
};
} // namespace sla
diff --git a/src/libslic3r/SLAPrint.cpp b/src/libslic3r/SLAPrint.cpp
index 30d6fc7c3..46d039c1f 100644
--- a/src/libslic3r/SLAPrint.cpp
+++ b/src/libslic3r/SLAPrint.cpp
@@ -1381,9 +1381,9 @@ void SLAPrint::process()
// Estimated printing time
// A layers count o the highest object
if (m_printer_input.size() == 0)
- m_print_statistics.estimated_print_time = "N/A";
+ m_print_statistics.estimated_print_time = std::nan("");
else
- m_print_statistics.estimated_print_time = get_time_dhms(float(estim_time));
+ m_print_statistics.estimated_print_time = estim_time;
m_print_statistics.fast_layers_count = fast_layers;
m_print_statistics.slow_layers_count = slow_layers;
@@ -1394,16 +1394,9 @@ void SLAPrint::process()
// Rasterizing the model objects, and their supports
auto rasterize = [this]() {
if(canceled()) return;
-
- { // create a raster printer for the current print parameters
- double layerh = m_default_object_config.layer_height.getFloat();
- m_printer.reset(new sla::SLARasterWriter(m_printer_config,
- m_material_config,
- layerh));
- }
-
- // Allocate space for all the layers
- sla::SLARasterWriter &printer = *m_printer;
+
+ // Set up the printer, allocate space for all the layers
+ sla::SLARasterWriter &printer = init_printer();
auto lvlcnt = unsigned(m_printer_input.size());
printer.layers(lvlcnt);
@@ -1422,10 +1415,12 @@ void SLAPrint::process()
double dstatus = m_report_status.status();
SpinMutex slck;
+
+ auto orientation = get_printer_orientation();
// procedure to process one height level. This will run in parallel
auto lvlfn =
- [this, &slck, &printer, increment, &dstatus, &pst]
+ [this, &slck, &printer, increment, &dstatus, &pst, orientation]
(unsigned level_id)
{
if(canceled()) return;
@@ -1436,7 +1431,7 @@ void SLAPrint::process()
printer.begin_layer(level_id);
for(const ClipperLib::Polygon& poly : printlayer.transformed_slices())
- printer.draw_polygon(poly, level_id);
+ printer.draw_polygon(poly, level_id, orientation);
// Finish the layer for later saving it.
printer.finish_layer(level_id);
@@ -1464,12 +1459,18 @@ void SLAPrint::process()
tbb::parallel_for<unsigned, decltype(lvlfn)>(0, lvlcnt, lvlfn);
// Set statistics values to the printer
- m_printer->set_statistics(
- {(m_print_statistics.objects_used_material
- + m_print_statistics.support_used_material) / 1000,
- double(m_default_object_config.faded_layers.getInt()),
- double(m_print_statistics.slow_layers_count),
- double(m_print_statistics.fast_layers_count)});
+ sla::SLARasterWriter::PrintStatistics stats;
+ stats.used_material = (m_print_statistics.objects_used_material +
+ m_print_statistics.support_used_material) /
+ 1000;
+
+ int num_fade = m_default_object_config.faded_layers.getInt();
+ stats.num_fade = num_fade >= 0 ? size_t(num_fade) : size_t(0);
+ stats.num_fast = m_print_statistics.fast_layers_count;
+ stats.num_slow = m_print_statistics.slow_layers_count;
+ stats.estimated_print_time_s = m_print_statistics.estimated_print_time;
+
+ m_printer->set_statistics(stats);
};
using slaposFn = std::function<void(SLAPrintObject&)>;
@@ -1653,6 +1654,39 @@ bool SLAPrint::invalidate_state_by_config_options(const std::vector<t_config_opt
return invalidated;
}
+sla::SLARasterWriter & SLAPrint::init_printer()
+{
+ sla::Raster::Resolution res;
+ sla::Raster::PixelDim pxdim;
+ std::array<bool, 2> mirror;
+ double gamma;
+
+ double w = m_printer_config.display_width.getFloat();
+ double h = m_printer_config.display_height.getFloat();
+ auto pw = size_t(m_printer_config.display_pixels_x.getInt());
+ auto ph = size_t(m_printer_config.display_pixels_y.getInt());
+
+ mirror[X] = m_printer_config.display_mirror_x.getBool();
+ mirror[Y] = m_printer_config.display_mirror_y.getBool();
+
+ if (get_printer_orientation() == sla::SLARasterWriter::roPortrait) {
+ std::swap(w, h);
+ std::swap(pw, ph);
+
+ // XY flipping implicitly does an X mirror
+ mirror[X] = !mirror[X];
+ }
+
+ res = sla::Raster::Resolution{pw, ph};
+ pxdim = sla::Raster::PixelDim{w / pw, h / ph};
+
+ gamma = m_printer_config.gamma_correction.getFloat();
+
+ m_printer.reset(new sla::SLARasterWriter(res, pxdim, mirror, gamma));
+ m_printer->set_config(m_full_print_config);
+ return *m_printer;
+}
+
// Returns true if an object step is done on all objects and there's at least one object.
bool SLAPrint::is_step_done(SLAPrintObjectStep step) const
{
@@ -1932,7 +1966,7 @@ std::vector<sla::SupportPoint> SLAPrintObject::transformed_support_points() cons
DynamicConfig SLAPrintStatistics::config() const
{
DynamicConfig config;
- const std::string print_time = Slic3r::short_time(this->estimated_print_time);
+ const std::string print_time = Slic3r::short_time(get_time_dhms(float(this->estimated_print_time)));
config.set_key_value("print_time", new ConfigOptionString(print_time));
config.set_key_value("objects_used_material", new ConfigOptionFloat(this->objects_used_material));
config.set_key_value("support_used_material", new ConfigOptionFloat(this->support_used_material));
diff --git a/src/libslic3r/SLAPrint.hpp b/src/libslic3r/SLAPrint.hpp
index ec3b2d02e..a2bc1325a 100644
--- a/src/libslic3r/SLAPrint.hpp
+++ b/src/libslic3r/SLAPrint.hpp
@@ -300,7 +300,7 @@ class TriangleMesh;
struct SLAPrintStatistics
{
SLAPrintStatistics() { clear(); }
- std::string estimated_print_time;
+ double estimated_print_time;
double objects_used_material;
double support_used_material;
size_t slow_layers_count;
@@ -316,7 +316,7 @@ struct SLAPrintStatistics
std::string finalize_output_path(const std::string &path_in) const;
void clear() {
- estimated_print_time.clear();
+ estimated_print_time = 0.;
objects_used_material = 0.;
support_used_material = 0.;
slow_layers_count = 0;
@@ -458,6 +458,16 @@ private:
double status() const { return m_st; }
} m_report_status;
+
+ sla::SLARasterWriter &init_printer();
+
+ inline sla::SLARasterWriter::Orientation get_printer_orientation() const
+ {
+ auto ro = m_printer_config.display_orientation.getInt();
+ return ro == sla::SLARasterWriter::roPortrait ?
+ sla::SLARasterWriter::roPortrait :
+ sla::SLARasterWriter::roLandscape;
+ }
friend SLAPrintObject;
};
diff --git a/src/slic3r/Utils/Time.cpp b/src/libslic3r/Time.cpp
index db1aa31f6..1f65189b8 100644
--- a/src/slic3r/Utils/Time.cpp
+++ b/src/libslic3r/Time.cpp
@@ -1,5 +1,13 @@
#include "Time.hpp"
+#include <iomanip>
+#include <sstream>
+#include <chrono>
+
+//#include <boost/date_time/local_time/local_time.hpp>
+//#include <boost/chrono.hpp>
+
+
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
@@ -9,11 +17,31 @@
namespace Slic3r {
namespace Utils {
+namespace {
+
+// FIXME: after we switch to gcc > 4.9 on the build server, please remove me
+#if defined(__GNUC__) && __GNUC__ <= 4
+std::string put_time(const std::tm *tm, const char *fmt)
+{
+ static const constexpr int MAX_CHARS = 200;
+ char out[MAX_CHARS];
+ std::strftime(out, MAX_CHARS, fmt, tm);
+ return out;
+}
+#else
+auto put_time(const std::tm *tm, const char *fmt) -> decltype (std::put_time(tm, fmt))
+{
+ return std::put_time(tm, fmt);
+}
+#endif
+
+}
+
time_t parse_time_ISO8601Z(const std::string &sdate)
{
int y, M, d, h, m, s;
if (sscanf(sdate.c_str(), "%04d%02d%02dT%02d%02d%02dZ", &y, &M, &d, &h, &m, &s) != 6)
- return (time_t)-1;
+ return time_t(-1);
struct tm tms;
tms.tm_year = y - 1900; // Year since 1900
tms.tm_mon = M - 1; // 0-11
@@ -62,24 +90,28 @@ std::string format_local_date_time(time_t time)
}
time_t get_current_time_utc()
+{
+ using clk = std::chrono::system_clock;
+ return clk::to_time_t(clk::now());
+}
+
+static std::string tm2str(const std::tm *tm, const char *fmt)
{
-#ifdef WIN32
- SYSTEMTIME st;
- // Retrieves the current system date and time. The system time is expressed in Coordinated Universal Time (UTC).
- ::GetSystemTime(&st);
- std::tm tm;
- tm.tm_sec = st.wSecond;
- tm.tm_min = st.wMinute;
- tm.tm_hour = st.wHour;
- tm.tm_mday = st.wDay;
- tm.tm_mon = st.wMonth - 1;
- tm.tm_year = st.wYear - 1900;
- tm.tm_isdst = -1;
- return _mkgmtime(&tm);
-#else
- // time() returns the time as the number of seconds since the Epoch, 1970-01-01 00:00:00 +0000 (UTC).
- return time(nullptr);
-#endif
+ std::stringstream ss;
+ ss << put_time(tm, fmt);
+ return ss.str();
+}
+
+std::string time2str(const time_t &t, TimeZone zone, const char *fmt)
+{
+ std::string ret;
+
+ switch (zone) {
+ case TimeZone::local: ret = tm2str(std::localtime(&t), fmt); break;
+ case TimeZone::utc: ret = tm2str(std::gmtime(&t), fmt) + " UTC"; break;
+ }
+
+ return ret;
}
}; // namespace Utils
diff --git a/src/libslic3r/Time.hpp b/src/libslic3r/Time.hpp
new file mode 100644
index 000000000..b314e47f7
--- /dev/null
+++ b/src/libslic3r/Time.hpp
@@ -0,0 +1,47 @@
+#ifndef slic3r_Utils_Time_hpp_
+#define slic3r_Utils_Time_hpp_
+
+#include <string>
+#include <ctime>
+
+namespace Slic3r {
+namespace Utils {
+
+// Utilities to convert an UTC time_t to/from an ISO8601 time format,
+// useful for putting timestamps into file and directory names.
+// Returns (time_t)-1 on error.
+time_t parse_time_ISO8601Z(const std::string &s);
+std::string format_time_ISO8601Z(time_t time);
+
+// Format the date and time from an UTC time according to the active locales and a local time zone.
+// TODO: make sure time2str is a suitable replacement
+std::string format_local_date_time(time_t time);
+
+// There is no gmtime() on windows.
+time_t get_current_time_utc();
+
+const constexpr char *const SLIC3R_TIME_FMT = "%Y-%m-%d at %T";
+
+enum class TimeZone { local, utc };
+
+std::string time2str(const time_t &t, TimeZone zone, const char *fmt = SLIC3R_TIME_FMT);
+
+inline std::string current_time2str(TimeZone zone, const char *fmt = SLIC3R_TIME_FMT)
+{
+ return time2str(get_current_time_utc(), zone, fmt);
+}
+
+inline std::string current_local_time2str(const char * fmt = SLIC3R_TIME_FMT)
+{
+ return current_time2str(TimeZone::local, fmt);
+}
+
+inline std::string current_utc_time2str(const char * fmt = SLIC3R_TIME_FMT)
+{
+ return current_time2str(TimeZone::utc, fmt);
+}
+
+}; // namespace Utils
+}; // namespace Slic3r
+
+#endif /* slic3r_Utils_Time_hpp_ */
diff --git a/src/libslic3r/Utils.hpp b/src/libslic3r/Utils.hpp
index 2b1fdb241..5d847573d 100644
--- a/src/libslic3r/Utils.hpp
+++ b/src/libslic3r/Utils.hpp
@@ -87,11 +87,9 @@ namespace PerlUtils {
std::string string_printf(const char *format, ...);
-// Timestamp formatted for header_slic3r_generated().
-extern std::string timestamp_str();
// Standard "generated by Slic3r version xxx timestamp xxx" header string,
// to be placed at the top of Slic3r generated files.
-inline std::string header_slic3r_generated() { return std::string("generated by " SLIC3R_APP_NAME " " SLIC3R_VERSION " " ) + timestamp_str(); }
+std::string header_slic3r_generated();
// getpid platform wrapper
extern unsigned get_current_pid();
diff --git a/src/libslic3r/utils.cpp b/src/libslic3r/utils.cpp
index e26ed3839..895efdb4d 100644
--- a/src/libslic3r/utils.cpp
+++ b/src/libslic3r/utils.cpp
@@ -6,6 +6,8 @@
#include <cstdarg>
#include <stdio.h>
+#include "Time.hpp"
+
#ifdef WIN32
#include <windows.h>
#include <psapi.h>
@@ -29,7 +31,6 @@
#include <boost/locale.hpp>
#include <boost/algorithm/string/predicate.hpp>
-#include <boost/date_time/local_time/local_time.hpp>
#include <boost/filesystem.hpp>
#include <boost/filesystem/path.hpp>
#include <boost/nowide/fstream.hpp>
@@ -540,16 +541,9 @@ std::string string_printf(const char *format, ...)
return res;
}
-
-std::string timestamp_str()
+std::string header_slic3r_generated()
{
- const auto now = boost::posix_time::second_clock::local_time();
- char buf[2048];
- sprintf(buf, "on %04d-%02d-%02d at %02d:%02d:%02d",
- // Local date in an ANSII format.
- int(now.date().year()), int(now.date().month()), int(now.date().day()),
- int(now.time_of_day().hours()), int(now.time_of_day().minutes()), int(now.time_of_day().seconds()));
- return buf;
+ return std::string("generated by " SLIC3R_APP_NAME " " SLIC3R_VERSION " on " ) + Utils::current_utc_time2str();
}
unsigned get_current_pid()
diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt
index e51415d53..161e1a1ff 100644
--- a/src/slic3r/CMakeLists.txt
+++ b/src/slic3r/CMakeLists.txt
@@ -148,8 +148,6 @@ set(SLIC3R_GUI_SOURCES
Utils/Bonjour.hpp
Utils/PresetUpdater.cpp
Utils/PresetUpdater.hpp
- Utils/Time.cpp
- Utils/Time.hpp
Utils/UndoRedo.cpp
Utils/UndoRedo.hpp
Utils/HexFile.cpp
diff --git a/src/slic3r/Config/Snapshot.cpp b/src/slic3r/Config/Snapshot.cpp
index 2aebd0c72..622b31a17 100644
--- a/src/slic3r/Config/Snapshot.cpp
+++ b/src/slic3r/Config/Snapshot.cpp
@@ -1,7 +1,6 @@
#include "Snapshot.hpp"
#include "../GUI/AppConfig.hpp"
#include "../GUI/PresetBundle.hpp"
-#include "../Utils/Time.hpp"
#include <time.h>
@@ -13,6 +12,7 @@
#include <boost/property_tree/ptree.hpp>
#include "libslic3r/libslic3r.h"
+#include "libslic3r/Time.hpp"
#include "libslic3r/Config.hpp"
#include "libslic3r/FileParserError.hpp"
#include "libslic3r/Utils.hpp"
diff --git a/src/slic3r/GUI/ConfigSnapshotDialog.cpp b/src/slic3r/GUI/ConfigSnapshotDialog.cpp
index 59ed38412..836a0a4d3 100644
--- a/src/slic3r/GUI/ConfigSnapshotDialog.cpp
+++ b/src/slic3r/GUI/ConfigSnapshotDialog.cpp
@@ -2,9 +2,9 @@
#include "I18N.hpp"
#include "../Config/Snapshot.hpp"
-#include "../Utils/Time.hpp"
#include "libslic3r/Utils.hpp"
+#include "libslic3r/Time.hpp"
#include "GUI_App.hpp"
#include "wxExtensions.hpp"
diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp
index 803510f80..3075d11ed 100644
--- a/src/slic3r/GUI/Plater.cpp
+++ b/src/slic3r/GUI/Plater.cpp
@@ -1135,7 +1135,8 @@ void Sidebar::show_sliced_info_sizer(const bool show)
p->sliced_info->SetTextAndShow(siMateril_unit, info_text, new_label);
p->sliced_info->SetTextAndShow(siCost, "N/A"/*wxString::Format("%.2f", ps.total_cost)*/);
- p->sliced_info->SetTextAndShow(siEstimatedTime, ps.estimated_print_time, _(L("Estimated printing time")) + " :");
+ wxString t_est = std::isnan(ps.estimated_print_time) ? "N/A" : get_time_dhms(float(ps.estimated_print_time));
+ p->sliced_info->SetTextAndShow(siEstimatedTime, t_est, _(L("Estimated printing time")) + " :");
// Hide non-SLA sliced info parameters
p->sliced_info->SetTextAndShow(siFilament_m, "N/A");
diff --git a/src/slic3r/Utils/Time.hpp b/src/slic3r/Utils/Time.hpp
deleted file mode 100644
index 6a1aefa18..000000000
--- a/src/slic3r/Utils/Time.hpp
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef slic3r_Utils_Time_hpp_
-#define slic3r_Utils_Time_hpp_
-
-#include <string>
-#include <ctime>
-
-namespace Slic3r {
-namespace Utils {
-
-// Utilities to convert an UTC time_t to/from an ISO8601 time format,
-// useful for putting timestamps into file and directory names.
-// Returns (time_t)-1 on error.
-extern time_t parse_time_ISO8601Z(const std::string &s);
-extern std::string format_time_ISO8601Z(time_t time);
-
-// Format the date and time from an UTC time according to the active locales and a local time zone.
-extern std::string format_local_date_time(time_t time);
-
-// There is no gmtime() on windows.
-extern time_t get_current_time_utc();
-
-}; // namespace Utils
-}; // namespace Slic3r
-
-#endif /* slic3r_Utils_Time_hpp_ */
diff --git a/version.inc b/version.inc
index 7b1d8b56f..6d6031873 100644
--- a/version.inc
+++ b/version.inc
@@ -3,7 +3,7 @@
set(SLIC3R_APP_NAME "PrusaSlicer")
set(SLIC3R_APP_KEY "PrusaSlicer")
-set(SLIC3R_VERSION "2.1.0-rc")
+set(SLIC3R_VERSION "2.1.0-rc2")
set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN")
set(SLIC3R_RC_VERSION "2,1,0,0")
set(SLIC3R_RC_VERSION_DOTS "2.1.0.0")