Merge remote-tracking branch 'origin/master' into ys_improvements
Before Width: | Height: | Size: 61 KiB |
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-03-11 15:15+0100\n"
|
||||
"POT-Creation-Date: 2020-03-12 13:09+0100\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -71,56 +71,56 @@ msgid ""
|
|||
"not be affected."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:109
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:108
|
||||
msgid ""
|
||||
"Copying of the temporary G-code to the output G-code failed. Maybe the SD "
|
||||
"card is write locked?"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:112
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:111
|
||||
msgid ""
|
||||
"Copying of the temporary G-code to the output G-code failed. There might be "
|
||||
"problem with target device, please try exporting again or using different "
|
||||
"device. The corrupted output G-code is at %1%.tmp."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:115
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:114
|
||||
msgid ""
|
||||
"Renaming of the G-code after copying to the selected destination folder has "
|
||||
"failed. Current path is %1%.tmp. Please try exporting again."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:118
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:117
|
||||
msgid ""
|
||||
"Copying of the temporary G-code has finished but the original code at %1% "
|
||||
"couldn't be opened during copy check. The output G-code is at %2%.tmp."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:121
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:120
|
||||
msgid ""
|
||||
"Copying of the temporary G-code has finished but the exported code couldn't "
|
||||
"be opened during copy check. The output G-code is at %1%.tmp."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:128
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:478
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:127
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:479
|
||||
msgid "Running post-processing scripts"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:130
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:129
|
||||
msgid "G-code file exported to %1%"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:134
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:184
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:133
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:183
|
||||
msgid "Slicing complete"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:180
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:179
|
||||
msgid "Masked SLA file exported to %1%"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:222
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:221
|
||||
#, possible-c-format
|
||||
msgid ""
|
||||
"%s has encountered an error. It was likely caused by running out of memory. "
|
||||
|
@ -128,11 +128,11 @@ msgid ""
|
|||
"and we would be glad if you reported it."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:480
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:481
|
||||
msgid "Copying of the temporary G-code to the output G-code failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:505
|
||||
#: src/slic3r/GUI/BackgroundSlicingProcess.cpp:506
|
||||
msgid "Scheduling upload to `%1%`. See Window -> Print Host Upload Queue"
|
||||
msgstr ""
|
||||
|
||||
|
@ -480,7 +480,7 @@ msgstr ""
|
|||
msgid "PrusaSlicer version"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 src/slic3r/GUI/Preset.cpp:1551
|
||||
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:51 src/slic3r/GUI/Preset.cpp:1554
|
||||
msgid "print"
|
||||
msgstr ""
|
||||
|
||||
|
@ -488,7 +488,7 @@ msgstr ""
|
|||
msgid "filaments"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:53 src/slic3r/GUI/Preset.cpp:1555
|
||||
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:53 src/slic3r/GUI/Preset.cpp:1558
|
||||
msgid "printer"
|
||||
msgstr ""
|
||||
|
||||
|
@ -663,8 +663,8 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:813 src/slic3r/GUI/GUI_ObjectList.cpp:1680
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3984 src/slic3r/GUI/Plater.cpp:3282
|
||||
#: src/slic3r/GUI/Plater.cpp:3986 src/slic3r/GUI/Plater.cpp:4015
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3984 src/slic3r/GUI/Plater.cpp:3288
|
||||
#: src/slic3r/GUI/Plater.cpp:3992 src/slic3r/GUI/Plater.cpp:4021
|
||||
msgid "Reload from disk"
|
||||
msgstr ""
|
||||
|
||||
|
@ -805,11 +805,11 @@ msgstr ""
|
|||
msgid "Bed Temperature:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1486 src/slic3r/GUI/ConfigWizard.cpp:2028
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1486 src/slic3r/GUI/ConfigWizard.cpp:2029
|
||||
msgid "Filaments"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1486 src/slic3r/GUI/ConfigWizard.cpp:2030
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1486 src/slic3r/GUI/ConfigWizard.cpp:2031
|
||||
msgid "SLA Materials"
|
||||
msgstr ""
|
||||
|
||||
|
@ -842,64 +842,64 @@ msgstr ""
|
|||
msgid "Do you want to automatic select default materials?"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1991
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1992
|
||||
msgid "Select all standard printers"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1994
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1995
|
||||
msgid "< &Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1995
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1996
|
||||
msgid "&Next >"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1996
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1997
|
||||
msgid "&Finish"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1997 src/slic3r/GUI/FirmwareDialog.cpp:151
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1998 src/slic3r/GUI/FirmwareDialog.cpp:151
|
||||
#: src/slic3r/GUI/ProgressStatusBar.cpp:26
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2010
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2011
|
||||
msgid "Prusa FFF Technology Printers"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2013
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2014
|
||||
msgid "Prusa MSLA Technology Printers"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2028
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2029
|
||||
msgid "Filament Profiles Selection"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2028 src/slic3r/GUI/GUI_ObjectList.cpp:3581
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2029 src/slic3r/GUI/GUI_ObjectList.cpp:3581
|
||||
msgid "Type:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2030
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2031
|
||||
msgid "SLA Material Profiles Selection"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2030
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2031
|
||||
msgid "Layer height:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2124
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2125
|
||||
msgid "Configuration Assistant"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2125
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2126
|
||||
msgid "Configuration &Assistant"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2127
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2128
|
||||
msgid "Configuration Wizard"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2128
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:2129
|
||||
msgid "Configuration &Wizard"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1543,18 +1543,18 @@ msgid "Add..."
|
|||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:4474 src/slic3r/GUI/GUI_ObjectList.cpp:1734
|
||||
#: src/slic3r/GUI/Plater.cpp:3983 src/slic3r/GUI/Plater.cpp:4005
|
||||
#: src/slic3r/GUI/Plater.cpp:3989 src/slic3r/GUI/Plater.cpp:4011
|
||||
#: src/slic3r/GUI/Tab.cpp:3144
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:4483 src/slic3r/GUI/KBShortcutsDialog.cpp:131
|
||||
#: src/slic3r/GUI/Plater.cpp:4725
|
||||
#: src/slic3r/GUI/Plater.cpp:4731
|
||||
msgid "Delete all"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:4492 src/slic3r/GUI/KBShortcutsDialog.cpp:159
|
||||
#: src/slic3r/GUI/Plater.cpp:2806
|
||||
#: src/slic3r/GUI/Plater.cpp:2812
|
||||
msgid "Arrange"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1570,12 +1570,12 @@ msgstr ""
|
|||
msgid "Paste"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:4525 src/slic3r/GUI/Plater.cpp:3840
|
||||
#: src/slic3r/GUI/Plater.cpp:3852 src/slic3r/GUI/Plater.cpp:3992
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:4525 src/slic3r/GUI/Plater.cpp:3846
|
||||
#: src/slic3r/GUI/Plater.cpp:3858 src/slic3r/GUI/Plater.cpp:3998
|
||||
msgid "Add instance"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:4536 src/slic3r/GUI/Plater.cpp:3994
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:4536 src/slic3r/GUI/Plater.cpp:4000
|
||||
msgid "Remove instance"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1609,11 +1609,11 @@ msgstr ""
|
|||
msgid "Next Redo action: %1%"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:6586
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:6588
|
||||
msgid "Selection-Add from rectangle"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:6605
|
||||
#: src/slic3r/GUI/GLCanvas3D.cpp:6607
|
||||
msgid "Selection-Remove from rectangle"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2127,7 +2127,7 @@ msgstr ""
|
|||
msgid "Please check and fix your object list."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GUI_App.cpp:1073 src/slic3r/GUI/Plater.cpp:2365
|
||||
#: src/slic3r/GUI/GUI_App.cpp:1073 src/slic3r/GUI/Plater.cpp:2371
|
||||
#: src/slic3r/GUI/Tab.cpp:2948
|
||||
msgid "Attention!"
|
||||
msgstr ""
|
||||
|
@ -2459,12 +2459,12 @@ msgstr ""
|
|||
msgid "Fix through the Netfabb"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:1673 src/slic3r/GUI/Plater.cpp:4018
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:1673 src/slic3r/GUI/Plater.cpp:4024
|
||||
msgid "Export as STL"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:1680
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3984 src/slic3r/GUI/Plater.cpp:3986
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:3984 src/slic3r/GUI/Plater.cpp:3992
|
||||
msgid "Reload the selected volumes from disk"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2534,7 +2534,7 @@ msgstr ""
|
|||
msgid "Delete Instance"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:2286 src/slic3r/GUI/Plater.cpp:3035
|
||||
#: src/slic3r/GUI/GUI_ObjectList.cpp:2286 src/slic3r/GUI/Plater.cpp:3041
|
||||
msgid ""
|
||||
"The selected object couldn't be split because it contains only one part."
|
||||
msgstr ""
|
||||
|
@ -2978,11 +2978,11 @@ msgid "Load Config from ini/amf/3mf/gcode and merge"
|
|||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:122 src/slic3r/GUI/Plater.cpp:896
|
||||
#: src/slic3r/GUI/Plater.cpp:5546 src/libslic3r/PrintConfig.cpp:3363
|
||||
#: src/slic3r/GUI/Plater.cpp:5553 src/libslic3r/PrintConfig.cpp:3363
|
||||
msgid "Export G-code"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Plater.cpp:5547
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:123 src/slic3r/GUI/Plater.cpp:5554
|
||||
msgid "Send G-code"
|
||||
msgstr ""
|
||||
|
||||
|
@ -3263,7 +3263,7 @@ msgstr ""
|
|||
msgid "Show/Hide Legend"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:213 src/slic3r/GUI/Plater.cpp:4157
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:213 src/slic3r/GUI/Plater.cpp:4163
|
||||
#: src/slic3r/GUI/Tab.cpp:2374
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
|
@ -3850,8 +3850,8 @@ msgstr ""
|
|||
msgid "Save zip file as:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:894 src/slic3r/GUI/Plater.cpp:3178
|
||||
#: src/slic3r/GUI/Plater.cpp:5150 src/slic3r/GUI/Tab.cpp:1281
|
||||
#: src/slic3r/GUI/MainFrame.cpp:894 src/slic3r/GUI/Plater.cpp:3184
|
||||
#: src/slic3r/GUI/Plater.cpp:5156 src/slic3r/GUI/Tab.cpp:1281
|
||||
#: src/slic3r/GUI/Tab.cpp:3720
|
||||
msgid "Slicing"
|
||||
msgstr ""
|
||||
|
@ -4077,7 +4077,7 @@ msgstr ""
|
|||
msgid "SLA print settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:823 src/slic3r/GUI/Preset.cpp:1554
|
||||
#: src/slic3r/GUI/Plater.cpp:823 src/slic3r/GUI/Preset.cpp:1557
|
||||
msgid "SLA material"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4085,7 +4085,7 @@ msgstr ""
|
|||
msgid "Printer"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:883 src/slic3r/GUI/Plater.cpp:5547
|
||||
#: src/slic3r/GUI/Plater.cpp:883 src/slic3r/GUI/Plater.cpp:5554
|
||||
msgid "Send to printer"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4093,8 +4093,8 @@ msgstr ""
|
|||
msgid "Remove device"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:897 src/slic3r/GUI/Plater.cpp:3178
|
||||
#: src/slic3r/GUI/Plater.cpp:5153
|
||||
#: src/slic3r/GUI/Plater.cpp:897 src/slic3r/GUI/Plater.cpp:3184
|
||||
#: src/slic3r/GUI/Plater.cpp:5159
|
||||
msgid "Slice now"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4172,411 +4172,416 @@ msgstr ""
|
|||
msgid "Load Files"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2196
|
||||
#: src/slic3r/GUI/Plater.cpp:2199
|
||||
#, possible-c-format
|
||||
msgid ""
|
||||
"Unmounting successful. The device %s(%s) can now be safely removed from the "
|
||||
"computer."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2204
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, possible-c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2210
|
||||
msgid "New Project"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2325
|
||||
#: src/slic3r/GUI/Plater.cpp:2331
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2335
|
||||
#: src/slic3r/GUI/Plater.cpp:2341
|
||||
#, possible-c-format
|
||||
msgid "Processing input file %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2363
|
||||
#: src/slic3r/GUI/Plater.cpp:2369
|
||||
msgid "You cannot load SLA project with a multi-part object on the bed"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2364 src/slic3r/GUI/Tab.cpp:2947
|
||||
#: src/slic3r/GUI/Plater.cpp:2370 src/slic3r/GUI/Tab.cpp:2947
|
||||
msgid "Please check your object list before preset changing."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2409
|
||||
#: src/slic3r/GUI/Plater.cpp:2415
|
||||
msgid ""
|
||||
"This file contains several objects positioned at multiple heights.\n"
|
||||
"Instead of considering them as multiple objects, should I consider\n"
|
||||
"this file as a single object having multiple parts?"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2412 src/slic3r/GUI/Plater.cpp:2465
|
||||
#: src/slic3r/GUI/Plater.cpp:2418 src/slic3r/GUI/Plater.cpp:2471
|
||||
msgid "Multi-part object detected"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2419
|
||||
#: src/slic3r/GUI/Plater.cpp:2425
|
||||
msgid ""
|
||||
"This file cannot be loaded in a simple mode. Do you want to switch to an "
|
||||
"advanced mode?"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2420
|
||||
#: src/slic3r/GUI/Plater.cpp:2426
|
||||
msgid "Detected advanced data"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2442
|
||||
#: src/slic3r/GUI/Plater.cpp:2448
|
||||
#, 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 ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2462
|
||||
#: src/slic3r/GUI/Plater.cpp:2468
|
||||
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?"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2478
|
||||
#: src/slic3r/GUI/Plater.cpp:2484
|
||||
msgid "Loaded"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2580
|
||||
#: src/slic3r/GUI/Plater.cpp:2586
|
||||
msgid ""
|
||||
"Your object appears to be too large, so it was automatically scaled down to "
|
||||
"fit your print bed."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2581
|
||||
#: src/slic3r/GUI/Plater.cpp:2587
|
||||
msgid "Object too large?"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2643
|
||||
#: src/slic3r/GUI/Plater.cpp:2649
|
||||
msgid "Export STL file:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2650
|
||||
#: src/slic3r/GUI/Plater.cpp:2656
|
||||
msgid "Export AMF file:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2656
|
||||
#: src/slic3r/GUI/Plater.cpp:2662
|
||||
msgid "Save file as:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2662
|
||||
#: src/slic3r/GUI/Plater.cpp:2668
|
||||
msgid "Export OBJ file:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2764
|
||||
#: src/slic3r/GUI/Plater.cpp:2770
|
||||
msgid "Delete Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2775
|
||||
#: src/slic3r/GUI/Plater.cpp:2781
|
||||
msgid "Reset Project"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2812
|
||||
#: src/slic3r/GUI/Plater.cpp:2818
|
||||
msgid "Hollow"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2819
|
||||
#: src/slic3r/GUI/Plater.cpp:2825
|
||||
msgid "Optimize Rotation"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2865
|
||||
#: src/slic3r/GUI/Plater.cpp:2871
|
||||
msgid "Arranging"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2892
|
||||
#: src/slic3r/GUI/Plater.cpp:2898
|
||||
msgid "Could not arrange model objects! Some geometries may be invalid."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2898
|
||||
#: src/slic3r/GUI/Plater.cpp:2904
|
||||
msgid "Arranging canceled."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2899
|
||||
#: src/slic3r/GUI/Plater.cpp:2905
|
||||
msgid "Arranging done."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2915
|
||||
#: src/slic3r/GUI/Plater.cpp:2921
|
||||
msgid "Searching for optimal orientation"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2948
|
||||
#: src/slic3r/GUI/Plater.cpp:2954
|
||||
msgid "Orientation search canceled."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2949
|
||||
#: src/slic3r/GUI/Plater.cpp:2955
|
||||
msgid "Orientation found."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2979
|
||||
#: src/slic3r/GUI/Plater.cpp:2985
|
||||
msgid "Indexing hollowed object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2983
|
||||
#: src/slic3r/GUI/Plater.cpp:2989
|
||||
msgid "Hollowing cancelled."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2984
|
||||
#: src/slic3r/GUI/Plater.cpp:2990
|
||||
msgid "Hollowing done."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2986
|
||||
#: src/slic3r/GUI/Plater.cpp:2992
|
||||
msgid "Hollowing failed."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3027
|
||||
#: src/slic3r/GUI/Plater.cpp:3033
|
||||
msgid ""
|
||||
"The selected object can't be split because it contains more than one volume/"
|
||||
"material."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3038
|
||||
#: src/slic3r/GUI/Plater.cpp:3044
|
||||
msgid "Split to Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3163
|
||||
#: src/slic3r/GUI/Plater.cpp:3169
|
||||
msgid "Invalid data"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3172
|
||||
#: src/slic3r/GUI/Plater.cpp:3178
|
||||
msgid "Ready to slice"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3210 src/slic3r/GUI/PrintHostDialogs.cpp:232
|
||||
#: src/slic3r/GUI/Plater.cpp:3216 src/slic3r/GUI/PrintHostDialogs.cpp:232
|
||||
msgid "Cancelling"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3227
|
||||
#: src/slic3r/GUI/Plater.cpp:3233
|
||||
msgid "Another export job is currently running."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3343
|
||||
#: src/slic3r/GUI/Plater.cpp:3349
|
||||
msgid "Please select the file to reload"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3378
|
||||
#: src/slic3r/GUI/Plater.cpp:3384
|
||||
msgid "It is not allowed to change the file to reload"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3378
|
||||
#: src/slic3r/GUI/Plater.cpp:3384
|
||||
msgid "Do you want to retry"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3396
|
||||
#: src/slic3r/GUI/Plater.cpp:3402
|
||||
msgid "Reload from:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3485
|
||||
#: src/slic3r/GUI/Plater.cpp:3491
|
||||
msgid "Unable to reload:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3490
|
||||
#: src/slic3r/GUI/Plater.cpp:3496
|
||||
msgid "Error during reload"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3509
|
||||
#: src/slic3r/GUI/Plater.cpp:3515
|
||||
msgid "Reload all from disk"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3530
|
||||
#: src/slic3r/GUI/Plater.cpp:3536
|
||||
msgid "Fix Throught NetFabb"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3721
|
||||
#: src/slic3r/GUI/Plater.cpp:3727
|
||||
msgid "Export failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3726 src/slic3r/GUI/PrintHostDialogs.cpp:233
|
||||
#: src/slic3r/GUI/Plater.cpp:3732 src/slic3r/GUI/PrintHostDialogs.cpp:233
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3983 src/slic3r/GUI/Plater.cpp:4005
|
||||
#: src/slic3r/GUI/Plater.cpp:3989 src/slic3r/GUI/Plater.cpp:4011
|
||||
msgid "Remove the selected object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3992
|
||||
#: src/slic3r/GUI/Plater.cpp:3998
|
||||
msgid "Add one more instance of the selected object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3994
|
||||
#: src/slic3r/GUI/Plater.cpp:4000
|
||||
msgid "Remove one instance of the selected object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3996
|
||||
#: src/slic3r/GUI/Plater.cpp:4002
|
||||
msgid "Set number of instances"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:3996
|
||||
#: src/slic3r/GUI/Plater.cpp:4002
|
||||
msgid "Change the number of instances of the selected object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4015
|
||||
#: src/slic3r/GUI/Plater.cpp:4021
|
||||
msgid "Reload the selected object from disk"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4018
|
||||
#: src/slic3r/GUI/Plater.cpp:4024
|
||||
msgid "Export the selected object as STL file"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4047
|
||||
#: src/slic3r/GUI/Plater.cpp:4053
|
||||
msgid "Along X axis"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4047
|
||||
#: src/slic3r/GUI/Plater.cpp:4053
|
||||
msgid "Mirror the selected object along the X axis"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4049
|
||||
#: src/slic3r/GUI/Plater.cpp:4055
|
||||
msgid "Along Y axis"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4049
|
||||
#: src/slic3r/GUI/Plater.cpp:4055
|
||||
msgid "Mirror the selected object along the Y axis"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4051
|
||||
#: src/slic3r/GUI/Plater.cpp:4057
|
||||
msgid "Along Z axis"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4051
|
||||
#: src/slic3r/GUI/Plater.cpp:4057
|
||||
msgid "Mirror the selected object along the Z axis"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4054
|
||||
#: src/slic3r/GUI/Plater.cpp:4060
|
||||
msgid "Mirror"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4054
|
||||
#: src/slic3r/GUI/Plater.cpp:4060
|
||||
msgid "Mirror the selected object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4066
|
||||
#: src/slic3r/GUI/Plater.cpp:4072
|
||||
msgid "To objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4066 src/slic3r/GUI/Plater.cpp:4086
|
||||
#: src/slic3r/GUI/Plater.cpp:4072 src/slic3r/GUI/Plater.cpp:4092
|
||||
msgid "Split the selected object into individual objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4068
|
||||
#: src/slic3r/GUI/Plater.cpp:4074
|
||||
msgid "To parts"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4068 src/slic3r/GUI/Plater.cpp:4100
|
||||
#: src/slic3r/GUI/Plater.cpp:4074 src/slic3r/GUI/Plater.cpp:4106
|
||||
msgid "Split the selected object into individual sub-parts"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4071 src/slic3r/GUI/Plater.cpp:4086
|
||||
#: src/slic3r/GUI/Plater.cpp:4100 src/libslic3r/PrintConfig.cpp:3481
|
||||
#: src/slic3r/GUI/Plater.cpp:4077 src/slic3r/GUI/Plater.cpp:4092
|
||||
#: src/slic3r/GUI/Plater.cpp:4106 src/libslic3r/PrintConfig.cpp:3481
|
||||
msgid "Split"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4071
|
||||
#: src/slic3r/GUI/Plater.cpp:4077
|
||||
msgid "Split the selected object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4092
|
||||
#: src/slic3r/GUI/Plater.cpp:4098
|
||||
msgid "Optimize orientation"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4092
|
||||
#: src/slic3r/GUI/Plater.cpp:4098
|
||||
msgid "Optimize the rotation of the object for better print results."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4149
|
||||
#: src/slic3r/GUI/Plater.cpp:4155
|
||||
msgid "3D editor view"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4456
|
||||
#: src/slic3r/GUI/Plater.cpp:4462
|
||||
msgid ""
|
||||
"%1% printer was active at the time the target Undo / Redo snapshot was "
|
||||
"taken. Switching to %1% printer requires reloading of %1% presets."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4631
|
||||
#: src/slic3r/GUI/Plater.cpp:4637
|
||||
msgid "Load Project"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4659
|
||||
#: src/slic3r/GUI/Plater.cpp:4665
|
||||
msgid "Import Object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4663
|
||||
#: src/slic3r/GUI/Plater.cpp:4669
|
||||
msgid "Import Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4725
|
||||
#: src/slic3r/GUI/Plater.cpp:4731
|
||||
msgid "All objects will be removed, continue?"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4733
|
||||
#: src/slic3r/GUI/Plater.cpp:4739
|
||||
msgid "Delete Selected Objects"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4741
|
||||
#: src/slic3r/GUI/Plater.cpp:4747
|
||||
msgid "Increase Instances"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4776
|
||||
#: src/slic3r/GUI/Plater.cpp:4782
|
||||
msgid "Decrease Instances"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4807
|
||||
#: src/slic3r/GUI/Plater.cpp:4813
|
||||
msgid "Enter the number of copies:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4808
|
||||
#: src/slic3r/GUI/Plater.cpp:4814
|
||||
msgid "Copies of the selected object"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4812
|
||||
#: src/slic3r/GUI/Plater.cpp:4818
|
||||
#, possible-c-format
|
||||
msgid "Set numbers of copies to %d"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4842
|
||||
#: src/slic3r/GUI/Plater.cpp:4848
|
||||
msgid "Cut by Plane"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4893
|
||||
#: src/slic3r/GUI/Plater.cpp:4899
|
||||
msgid "Save G-code file as:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:4893
|
||||
#: src/slic3r/GUI/Plater.cpp:4899
|
||||
msgid "Save SL1 file as:"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:5028
|
||||
#: src/slic3r/GUI/Plater.cpp:5034
|
||||
#, possible-c-format
|
||||
msgid "STL file exported to %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:5045
|
||||
#: src/slic3r/GUI/Plater.cpp:5051
|
||||
#, possible-c-format
|
||||
msgid "AMF file exported to %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:5048
|
||||
#: src/slic3r/GUI/Plater.cpp:5054
|
||||
#, possible-c-format
|
||||
msgid "Error exporting AMF file %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:5081
|
||||
#: src/slic3r/GUI/Plater.cpp:5087
|
||||
#, possible-c-format
|
||||
msgid "3MF file exported to %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:5086
|
||||
#: src/slic3r/GUI/Plater.cpp:5092
|
||||
#, possible-c-format
|
||||
msgid "Error exporting 3MF file %s"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:5546
|
||||
#: src/slic3r/GUI/Plater.cpp:5553
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:5632
|
||||
#: src/slic3r/GUI/Plater.cpp:5639
|
||||
msgid "Paste From Clipboard"
|
||||
msgstr ""
|
||||
|
||||
|
@ -4717,34 +4722,34 @@ msgstr ""
|
|||
msgid "Select toolbar icon size in respect to the default one."
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
#: src/slic3r/GUI/Preset.cpp:250
|
||||
msgid "modified"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:1139 src/slic3r/GUI/Preset.cpp:1194
|
||||
#: src/slic3r/GUI/Preset.cpp:1272 src/slic3r/GUI/Preset.cpp:1314
|
||||
#: src/slic3r/GUI/Preset.cpp:1142 src/slic3r/GUI/Preset.cpp:1197
|
||||
#: src/slic3r/GUI/Preset.cpp:1275 src/slic3r/GUI/Preset.cpp:1317
|
||||
#: src/slic3r/GUI/PresetBundle.cpp:1591 src/slic3r/GUI/PresetBundle.cpp:1689
|
||||
msgid "System presets"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:1198 src/slic3r/GUI/Preset.cpp:1318
|
||||
#: src/slic3r/GUI/Preset.cpp:1201 src/slic3r/GUI/Preset.cpp:1321
|
||||
#: src/slic3r/GUI/PresetBundle.cpp:1694
|
||||
msgid "User presets"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:1231
|
||||
#: src/slic3r/GUI/Preset.cpp:1234
|
||||
msgid "Add/Remove materials"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:1233
|
||||
#: src/slic3r/GUI/Preset.cpp:1236
|
||||
msgid "Add/Remove printers"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:1552
|
||||
#: src/slic3r/GUI/Preset.cpp:1555
|
||||
msgid "filament"
|
||||
msgstr ""
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:1553
|
||||
#: src/slic3r/GUI/Preset.cpp:1556
|
||||
msgid "SLA print"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -337,6 +337,10 @@ msgstr "Logický výraz může používat konfigurační hodnoty aktivního prof
|
|||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Logický výraz může používat konfigurační hodnoty aktivního profilu tiskárny. Pokud je tento logický výraz pravdivý, potom je tento profil považován za kompatibilní s aktivním profilem tiskárny."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Bude vytvořena oddělená kopie aktuálního systémového přednastavení."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "Obecným pravidlem je 160 až 230 °C pro PLA a 215 až 250 °C pro ABS."
|
||||
|
@ -1569,15 +1573,6 @@ msgstr "Aktuální nastavení je zděděné od"
|
|||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Aktuální nastavení je zděděno z výchozího nastavení."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Aktuální nastavení je zděděné od:\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Aktuální verze:"
|
||||
|
@ -1877,6 +1872,18 @@ msgstr "Odznačit obdélníkovým výběrem myši"
|
|||
msgid "Deselects all objects"
|
||||
msgstr "Odznačit všechny objekty"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Oddělit od systémového přednastavení"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Oddělení přednastavení"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Odpojeno"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Detekovat perimetry přemostění"
|
||||
|
@ -2152,6 +2159,11 @@ msgstr "Vysunout SD kartu / Flash disk"
|
|||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "Vysunout SD kartu / Flash disk po vyexportování G-codu."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "Vysunutí zařízení %s(%s) se nezdařilo."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Kompenzace rozplácnutí první vrstvy"
|
||||
|
@ -2971,15 +2983,6 @@ msgstr "Pro více informací prosím navštivte naší wiki stránku:"
|
|||
msgid "For support enforcers only"
|
||||
msgstr "Pouze pro vynucené podpěry"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
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 ""
|
||||
"na levé straně: indikuje nesystémové (jiné než výchozí) přednastavení,\n"
|
||||
"na pravé straně: indikuje, že nastavení nebylo změněno."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
|
@ -3401,16 +3404,6 @@ msgstr "Soubor HTTPS CA"
|
|||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "Soubor HTTPS CA je volitelný. Je nutný pouze pokud použijte HTTPS certifikát s vlastním podpisem."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, 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 ""
|
||||
"Soubor HTTPS CA:\n"
|
||||
"V tomto systému používá %s certifikáty HTTPS ze systému Certificate Store nebo Keychain. Chcete-li použít vlastní soubor CA, importujte soubor CA do Certificate Store / Keychain."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Velikost ikon vůči výchozí velikosti"
|
||||
|
@ -4627,6 +4620,10 @@ msgstr "Oprava modelu byla dokončena"
|
|||
msgid "Model repaired successfully"
|
||||
msgstr "Model byl úspěšně opraven"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Úpravy aktuálního profilu budou uloženy."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "upraveno"
|
||||
|
@ -5425,10 +5422,10 @@ msgstr "Přednastavení (%s)"
|
|||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Přednastavení s názvem \"%1%\" již existuje."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Kopie"
|
||||
msgid "Copy"
|
||||
msgstr "Kopie"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
|
@ -6468,16 +6465,6 @@ msgstr "Vyberte, jaký typ podložky potřebujete"
|
|||
msgid "Select what kind of support do you need"
|
||||
msgstr "Vyberte typ podpěr, které potřebujete"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Vyberte ANO, pokud chcete odstranit všechny uložené změny nástroje,\n"
|
||||
"NE, pokud chcete, aby se všechny změny nástroje přepnout na změny barev,\n"
|
||||
"nebo ZRUŠIT pro ponechání beze změny."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
|
@ -7641,6 +7628,10 @@ msgid ""
|
|||
"If the device is connected, please press the Reset button next to the USB connector ..."
|
||||
msgstr "Zařízení %s nebylo nalezeno. Pokud je zařízení připojeno, stiskněte tlačítko Reset vedle USB konektoru ..."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Aktuální vlastní přednastavení bude odděleno od rodičovského systémového přednastavení."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
|
@ -7795,18 +7786,14 @@ msgstr "Vybraný objekt nemůže být rozdělen, protože obsahuje více než je
|
|||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "Vybraný objekt nemůže být rozdělen, protože obsahuje pouze jednu část."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Vybraný projekt již není k dispozici.\n"
|
||||
"Chcete ho odstranit ze seznamu posledních projektů?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Vybraný projekt již není dostupný"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
"The sequential print is on.\n"
|
||||
|
@ -7982,6 +7969,14 @@ msgstr ""
|
|||
msgid "This %s version: %s"
|
||||
msgstr "Tento %s verze: %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Tato akce je nevratná.\n"
|
||||
"Chcete pokračovat?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Tento kód je vložen mezi objekty, pokud je použit sekvenční tisk. Ve výchozím nastavení je resetován extruder a tisková podložka pomocí non-wait (nečekacím) příkazem; nicméně pokud jsou příkazy M104, M109, 140 nebo M190 detekovány v tomto vlastním kódu, Slic3r nebude přidávat teplotní příkazy. Můžete přidávat zástupné proměnné pro veškeré nastavení Slic3ru, takže můžete vložit příkaz “M109 S[first_layer_temperature]” kamkoliv chcete."
|
||||
|
@ -8149,10 +8144,6 @@ msgstr "Toto je největší možná výška vrstvy pro tento extruder, který se
|
|||
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 "Nejmenší tisknutelná výška vrstvy pro tento extruder. Omezuje rozlišení pro výšku proměnné vrstvy. Typické hodnoty jsou mezi 0,05 mm a 0,1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "To je obvykle způsobeno zanedbatelně malým množstvím extrudovaného materiálu nebo chybným modelem. Zkuste model opravit nebo změnit jeho orientaci na podložce."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "To je obvykle způsobeno zanedbatelně malým množstvím extrudovaného materiálu nebo chybným modelem. Zkuste model opravit nebo změnit jeho orientaci na podložce."
|
||||
|
|
|
@ -337,6 +337,10 @@ msgstr "Ein boolescher Ausdruck, der die Konfigurationswerte eines aktiven Druck
|
|||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Ein boolescher Ausdruck, der die Konfigurationswerte eines aktiven Druckerprofils verwendet. Wenn dieser Ausdruck als wahr bewertet wird, wird dieses Profil als kompatibel mit dem aktiven Druckerprofil angesehen."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Es wird eine Kopie der aktuellen Systemvoreinstellung erstellt, die von der Systemvoreinstellung gelöst wird."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "Ein Daumenwert ist 160 bis 230 °C für PLA, und 215 bis 250 °C für ABS."
|
||||
|
@ -1565,15 +1569,6 @@ msgstr "Aktuelle Voreinstellung ist abgeleitet von"
|
|||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Aktuelle Voreinstellung ist abgeleitet von der Standardvoreinstellung."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Aktuelle Voreinstellung ist abgeleitet von:\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Aktuelle Version:"
|
||||
|
@ -1873,6 +1868,18 @@ msgstr "Abwahl über Rechteck"
|
|||
msgid "Deselects all objects"
|
||||
msgstr "Alle Objekte abwählen"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Lösen von der Systemvoreinstellung"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Lösen der Voreinstellugen"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Losgelöst"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Umfangbrücken entdecken"
|
||||
|
@ -2136,6 +2143,23 @@ msgstr "Häkchen bearbeiten - Rechtsklick"
|
|||
msgid "Editing"
|
||||
msgstr "Bearbeitung"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Ejec&t SD card / Flash drive"
|
||||
msgstr "SD-Kar&te/Flash-Laufwerk auswerfen"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
|
||||
msgid "Eject SD card / Flash drive"
|
||||
msgstr "SD-Karte/Flash-Laufwerk auswerfen"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "SD-Karte / Flash-Laufwerk auswerfen, nachdem der G-Code dorthin exportiert wurde."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "Das Auswerfen von Gerät %s(%s) ist fehlgeschlagen."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Elefantenfußkompensation"
|
||||
|
@ -2426,6 +2450,10 @@ msgstr "Exportiere die aktuelle Plattenbelegung als AMF"
|
|||
msgid "Export current plate as G-code"
|
||||
msgstr "Exportiere die aktuelle Plattenbelegung als G-Code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export current plate as G-code to SD card / Flash drive"
|
||||
msgstr "Aktuelle Druckplatte als G-Code auf SD-Karte/Flash-Laufwerk exportieren"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:486
|
||||
msgid "Export current plate as STL"
|
||||
msgstr "Exportiere die aktuelle Plattenbelegung als STL"
|
||||
|
@ -2447,6 +2475,10 @@ msgstr "Exportieren Sie die vollständigen Pfadnamen der Modelle und Teilequelle
|
|||
msgid "Export G-code"
|
||||
msgstr "Export G-Code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export G-code to SD card / Flash drive"
|
||||
msgstr "G-Code auf SD-Karte/Flash-Laufwerk exportieren"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3320
|
||||
msgid "Export OBJ"
|
||||
msgstr "Exportiere OBJ"
|
||||
|
@ -2947,15 +2979,6 @@ msgstr "Für weitere Informationen besuchen Sie bitte unsere Wiki-Seite:"
|
|||
msgid "For support enforcers only"
|
||||
msgstr "Nur für Stützverstärker"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
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."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
|
@ -3373,16 +3396,6 @@ msgstr "HTTPS CA Datei"
|
|||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "HTTPS-CA-Datei ist optional. Sie wird nur benötigt, wenn Sie HTTPS mit einem selbstsignierten Zertifikat verwenden."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, 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."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Symbolgröße in Bezug auf die Standardgröße"
|
||||
|
@ -4599,6 +4612,10 @@ msgstr "Modellreparatur beendet"
|
|||
msgid "Model repaired successfully"
|
||||
msgstr "Modellreparatur erfolgreich"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Änderungen am aktuellen Profil werden gespeichert."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "geändert"
|
||||
|
@ -5397,10 +5414,10 @@ msgstr "Voreinstellung (%s)"
|
|||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Eine Voreinstellung mit dem Namen \"%1%\" existiert bereits."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Kopieren"
|
||||
msgid "Copy"
|
||||
msgstr "Kopieren"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
|
@ -6437,16 +6454,6 @@ msgstr "Wählen Sie aus, welche Art von Grundschicht Sie benötigen"
|
|||
msgid "Select what kind of support do you need"
|
||||
msgstr "Wählen Sie aus, welche Art von Unterstützung Sie benötigen"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Wählen Sie JA, wenn Sie alle gespeicherten Werkzeugänderungen löschen möchten, \n"
|
||||
"NEIN, wenn Sie möchten, dass alle Werkzeugänderungen auf Farbwechsel umgestellt werden, \n"
|
||||
"oder ABBRECHEN, um sie unverändert zu lassen."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
|
@ -7612,6 +7619,10 @@ 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...."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Die aktuelle benutzerdefinierte Voreinstellung wird von der Voreinstellung des übergeordneten Systems gelöst."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
|
@ -7769,17 +7780,13 @@ msgstr "Das ausgewählte Objekt konnte nicht getrennt werden, weil es aus mehr a
|
|||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "Das ausgewählte Objekt konnte nicht getrennt werden, da es nur aus einem Teil besteht."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Das ausgewählte Projekt ist nicht mehr verfügbar.\n"
|
||||
"Wollen Sie es aus der Liste der letzten Projekte entfernen ?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Das ausgewählte Projekt ist nicht mehr verfügbar"
|
||||
"Wollen Sie es aus der Liste der letzten Projekte entfernen?"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
|
@ -7952,6 +7959,14 @@ msgstr ""
|
|||
msgid "This %s version: %s"
|
||||
msgstr "Diese %s Version: %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Diese Aktion ist nicht umkehrbar.\n"
|
||||
"Wollen Sie fortfahren?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Dieser Code wird beim sequentiellen Drucken zwischen Objekten eingefügt. Standardmäßig werden Extruder- und Betttemperatur mit dem Befehl, der nicht auf die Änderung wartet, zurückgesetzt. Wenn jedoch M104, M109, M140 oder M190 in diesem benutzerdefinierten Code erkannt werden, fügt Slic3r keine Temperaturbefehle hinzu. Beachten Sie, dass Sie Platzhaltervariablen für alle PrusaSlicer-Einstellungen verwenden können, so dass Sie einen \"M109 S[first_layer_temperature]\"-Befehl an beliebiger Stelle platzieren können."
|
||||
|
@ -8117,10 +8132,6 @@ msgstr "Dies ist die höchste druckbare Schichthöhe für diesen Extruder, mit d
|
|||
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 "Dies ist die niedrigste druckbare Schichthöhe für diesen Extruder und begrenzt die Auflösung bei variabler Schichthöhe. Typische Werte liegen zwischen 0,05 mm und 0,1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Dies wird in der Regel durch vernachlässigbar kleine Extrusionen oder durch ein fehlerhaftes Modell verursacht. Versuchen Sie, das Modell zu reparieren oder seine Ausrichtung auf dem Druckbett zu ändern."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Dies wird in der Regel durch vernachlässigbar kleine Extrusionen oder durch ein fehlerhaftes Modell verursacht. Versuchen Sie, das Modell zu reparieren oder seine Ausrichtung auf dem Druckbett zu ändern."
|
||||
|
|
BIN
resources/localization/en/PrusaSlicer.mo
Normal file
155
resources/localization/en/PrusaSlicer_en.po
Normal file
|
@ -0,0 +1,155 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Language: en\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:71
|
||||
msgid "Don't notify about new releases any more"
|
||||
msgstr "Don't notify about new releases anymore"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:287
|
||||
msgid "A boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile."
|
||||
msgstr "A Boolean expression using the configuration values of an active print profile. If this expression evaluates to true, this profile is considered compatible with the active print profile."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:272
|
||||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "A Boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:409
|
||||
msgid "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top+bottom solid layers)."
|
||||
msgstr "Add solid infill near sloping surfaces to guarantee the vertical shell thickness (top + bottom solid layers)."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:791
|
||||
msgid "Additionally a backup snapshot of the whole configuration is created before an update is applied."
|
||||
msgstr "Additionally, a backup snapshot of the whole configuration is created before an update is applied."
|
||||
|
||||
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1268
|
||||
msgid "Autogeneration will erase all manually edited points."
|
||||
msgstr "Auto Generation will erase all manually edited points."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1171
|
||||
msgid "Autospeed (advanced)"
|
||||
msgstr "Auto Speed (advanced)"
|
||||
|
||||
#: src/slic3r/GUI/ConfigSnapshotDialog.cpp:22
|
||||
msgid "Before roll back"
|
||||
msgstr "Before rollback"
|
||||
|
||||
#: src/slic3r/GUI/ButtonsDescription.cpp:16
|
||||
msgid "Buttons And Text Colors Description"
|
||||
msgstr "Buttons and Text Colors Description"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:791
|
||||
msgid "Density of internal infill, expressed in the range 0% - 100%."
|
||||
msgstr "Density of internal infill, expressed in the range 0 % - 100 %."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:773
|
||||
#, 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 "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 mechanism, no automatic installation is done."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:783
|
||||
#, 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 "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."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:66
|
||||
msgid "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanisms, no automatic installation is done."
|
||||
msgstr "If enabled, PrusaSlicer will check for the new versions of itself online. When a new version becomes available a notification is displayed at the next application startup (never during program usage). This is only a notification mechanism, no automatic installation is done."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1858
|
||||
msgid "If enabled, the wipe tower will not be printed on layers with no toolchanges. On layers with a toolchange, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
|
||||
msgstr "If enabled, the wipe tower will not be printed on layers with no tool changes. On layers with a tool change, extruder will travel downward to print the wipe tower. User is responsible for ensuring there is no collision with the print."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2262
|
||||
msgid "Object will be used to purge the nozzle after a toolchange to save material that would otherwise end up in the wipe tower and decrease print time. Colours of the objects will be mixed as a result."
|
||||
msgstr "Object will be used to purge the nozzle after a tool change to save material that would otherwise end up in the wipe tower and decrease print time. Colours of the objects will be mixed as a result."
|
||||
|
||||
#: src/libslic3r/Print.cpp:1365
|
||||
msgid "One or more object were assigned an extruder that the printer does not have."
|
||||
msgstr "One or more objects were assigned an extruder that the printer does not have."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2254
|
||||
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."
|
||||
msgstr "Purging after tool change 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."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1552
|
||||
msgid "Retraction Length (Toolchange)"
|
||||
msgstr "Retraction Length (Tool change)"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:556
|
||||
msgid "Set this to a non-zero value to allow a manual extrusion width. If left to zero, Slic3r derives extrusion widths from the nozzle diameter (see the tooltips for perimeter extrusion width, infill extrusion width etc). If expressed as percentage (for example: 230%), it will be computed over layer height."
|
||||
msgstr "Set this to a non-zero value to allow a manual extrusion width. If left to zero, Slic3r derives extrusion widths from the nozzle diameter (see the tooltips for perimeter extrusion width, infill extrusion width etc.). If expressed as percentage (for example: 230%), it will be computed over layer height."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2824
|
||||
msgid "Some objects can get along with a few smaller pads instead of a single big one. This parameter defines how far the center of two smaller pads should be. If theyare closer, they will get merged into one pad."
|
||||
msgstr "Some objects can get along with a few smaller pads instead of a single big one. This parameter defines how far the center of two smaller pads should be. If they are closer, they will get merged into one pad."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:624
|
||||
msgid "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)."
|
||||
msgstr "Speed used for unloading the filament on the wipe tower (does not affect initial part of unloading just after ramming)."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2044
|
||||
msgid "Support material will not be generated for overhangs whose slope angle (90° = vertical) is above the given threshold. In other words, this value represent the most horizontal slope (measured from the horizontal plane) that you can print without support material. Set to zero for automatic detection (recommended)."
|
||||
msgstr "Support material will not be generated for overhangs whose slope angle (90° = vertical) is above the given threshold. In other words, this value represents the most horizontal slope (measured from the horizontal plane) that you can print without support material. Set to zero for automatic detection (recommended)."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
"The sequential print is on.\n"
|
||||
"It's impossible to apply any custom G-code for objects printing sequentually.\n"
|
||||
"This code won't be processed during G-code generation."
|
||||
msgstr ""
|
||||
"The sequential print is on.\n"
|
||||
"It's impossible to apply any custom G-code for objects printing sequentially.\n"
|
||||
"This code won't be processed during G-code generation."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2094
|
||||
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 "This custom code is inserted before every tool change. 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 tool change."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:396
|
||||
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 "This end procedure is inserted at the end of the output file, before the printer end gcode (and before any tool change 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."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2215
|
||||
msgid "This matrix describes volumes (in cubic milimetres) required to purge the new filament on the wipe tower for any given pair of tools."
|
||||
msgstr "This matrix describes volumes (in cubic millimetres) required to purge the new filament on the wipe tower for any given pair of tools."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1829
|
||||
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 "This start procedure is inserted at the beginning, after any printer start gcode (and after any tool change 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."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:641
|
||||
msgid "Time to wait after the filament is unloaded. May help to get reliable toolchanges with flexible materials that may need more time to shrink to original dimensions."
|
||||
msgstr "Time to wait after the filament is unloaded. May help to get reliable tool changes with flexible materials that may need more time to shrink to original dimensions."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1491
|
||||
msgid "Toolchange parameters with single extruder MM printers"
|
||||
msgstr "Toolchange parameters with single extruder MM printers"
|
||||
|
||||
#: src/slic3r/Utils/Duet.cpp:82 src/slic3r/Utils/Duet.cpp:137
|
||||
#: src/slic3r/Utils/FlashAir.cpp:119 src/slic3r/Utils/FlashAir.cpp:140
|
||||
#: src/slic3r/Utils/FlashAir.cpp:156
|
||||
msgid "Unknown error occured"
|
||||
msgstr "Unknown error occurred"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:253
|
||||
msgid "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc)."
|
||||
msgstr "When printing multi-material objects, this settings will make Slic3r to clip the overlapping object parts one by the other (2nd part will be clipped by the 1st, 3rd part will be clipped by the 1st and 2nd etc.)."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1391
|
||||
msgid "When set to zero, the distance the filament is moved from parking position during load is exactly the same as it was moved back during unload. When positive, it is loaded further, if negative, the loading move is shorter than unloading."
|
||||
msgstr "When set to zero, the distance the filament is moved from parking position during load is exactly the same as it was moved back during unload. When positive, it is loaded further, if negative, the loading move is shorter than unloading."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3285
|
||||
msgid "WHITE BULLET icon indicates a non system (or non default) preset."
|
||||
msgstr "WHITE BULLET icon indicates a non-system (or non-default) preset."
|
|
@ -337,6 +337,10 @@ msgstr "Une expression booléenne utilisant les valeurs de configuration d'un pr
|
|||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Une expression booléenne utilisant les valeurs de configuration d'un profil d'imprimante actif. Si cette expression est évaluée comme vraie, ce profil est considéré comme compatible avec le profil d'imprimante actif."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Une copie du préréglage système actuel sera créé, et il sera détaché du préréglage système."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "La règle générale est 160 à 230 °C pour le PLA et 215 à 250 °C pour l'ABS."
|
||||
|
@ -1569,15 +1573,6 @@ msgstr "Le préréglage actuel est hérité de"
|
|||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Le préréglage actuel est hérité du préréglage par défaut."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Le préréglage actuel est hérité de :\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Version actuelle :"
|
||||
|
@ -1877,6 +1872,18 @@ msgstr "Désélectionner par rectangle"
|
|||
msgid "Deselects all objects"
|
||||
msgstr "Désélectionner tous les objets"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Détacher du préréglage système"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Détacher le préréglage"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Détaché"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Détecter les périmètres faisant des ponts"
|
||||
|
@ -2140,6 +2147,23 @@ msgstr "Modifier la coche - Clic droit"
|
|||
msgid "Editing"
|
||||
msgstr "Édition"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Ejec&t SD card / Flash drive"
|
||||
msgstr "Éjec&ter la carte SD / la clef USB"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
|
||||
msgid "Eject SD card / Flash drive"
|
||||
msgstr "Éjecter la carte SD / la clef USB"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "Éjecter la carte SD / la clef USB une fois que la G-code y a été exporté."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "L'éjection de l'appareil %s(%s) a échoué."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Compensation de l'effet patte d'éléphant"
|
||||
|
@ -2430,6 +2454,10 @@ msgstr "Exporter le plateau courant en AMF"
|
|||
msgid "Export current plate as G-code"
|
||||
msgstr "Exporter le plateau courant en G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export current plate as G-code to SD card / Flash drive"
|
||||
msgstr "Exporter le plateau actuel en tant que G-code vers la carte SD / la clef USB"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:486
|
||||
msgid "Export current plate as STL"
|
||||
msgstr "Exporter le plateau courant en STL"
|
||||
|
@ -2451,6 +2479,10 @@ msgstr "Exportez les chemins d'accès complets des modèles et des sources de pi
|
|||
msgid "Export G-code"
|
||||
msgstr "Exporter le G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export G-code to SD card / Flash drive"
|
||||
msgstr "Exporter le G-code vers la carte SD / la clef USB"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3320
|
||||
msgid "Export OBJ"
|
||||
msgstr "Exporter OBJ"
|
||||
|
@ -2951,15 +2983,6 @@ msgstr "Pour plus d'informations, merci de visiter notre page wiki :"
|
|||
msgid "For support enforcers only"
|
||||
msgstr "Seulement pour les générateur de supports"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
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 ""
|
||||
"pour le bouton gauche : indique un préréglage non-système (ou non par défaut),\n"
|
||||
"pour le bouton droit : indique que le réglage n'a pas été modifié."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
|
@ -3381,17 +3404,6 @@ msgstr "HTTPS CA Fichier"
|
|||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "Le fichier HTTPS CA est optionnel. Il est uniquement requis si vous utilisez le HTTPS avec un certificat auto-signé."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, 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 ""
|
||||
"Fichier HTTPS CA :\n"
|
||||
"\tDans ce système, %s utilise des certificats HTTPS issus du système Magasin de Certificats ou Trousseau.\n"
|
||||
"\tPour utiliser un fichier CA personnalisé, veuillez importer votre fichier CA dans le Magasin de Certificats / Trousseau."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Taille de l'icône par rapport à la taille par défaut"
|
||||
|
@ -4608,6 +4620,10 @@ msgstr "Réparation du modèle terminée"
|
|||
msgid "Model repaired successfully"
|
||||
msgstr "Réparation du modèle réussie"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Les modifications du profil actuel vont être sauvegardées."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "modifié"
|
||||
|
@ -5406,10 +5422,10 @@ msgstr "Préréglage (%s)"
|
|||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Un préréglage avec le nom \"%1%\" existe déjà."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Copie"
|
||||
msgid "Copy"
|
||||
msgstr "Copie"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
|
@ -6452,16 +6468,6 @@ msgstr "Choisissez le type de socle dont vous avez besoin"
|
|||
msgid "Select what kind of support do you need"
|
||||
msgstr "Choisissez le type de support dont vous avez besoin"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Sélectionnez OUI si vous souhaitez supprimer tous les changements d'outil enregistrées, \n"
|
||||
"NON si vous souhaitez que tous les changements d'outil soient remplacés par des modifications de couleur, \n"
|
||||
"ou ANNULER pour ne pas les modifier."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
|
@ -7626,6 +7632,10 @@ msgstr ""
|
|||
"L'équipement %s n'a pas été trouvé.\n"
|
||||
"Si l'équipement est connecté, veuillez appuyer sur le bouton Reset à côté du connecteur USB ..."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Le préréglage personnalisé actuel sera détaché du préréglage système parent."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
|
@ -7780,17 +7790,13 @@ msgstr "L'objet sélectionné ne peut être scindé car il contient plus d'un vo
|
|||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "L'objet sélectionné n'a pu être scindé car il ne contient qu'une seule pièce."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Le projet sélectionné n'est plus disponible.\n"
|
||||
"Voulez-vous le retirer de la liste des projets récents ?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Le projet sélectionné n'est plus disponible"
|
||||
"Voulez-vous le retirer de la liste des projets récents?"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
|
@ -7964,6 +7970,14 @@ msgstr ""
|
|||
msgid "This %s version: %s"
|
||||
msgstr "Version de ce %s : %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Cette action n'est pas réversible.\n"
|
||||
"Voulez-vous continuer ?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Ce code est inséré entre des objets lorsque vous utilisez l'impression séquentielle. Par défaut la température de l'extrudeur et du plateau est réinitialisée et utilise la commande sans-attente ; toutefois si des commandes M104, M109, M140 ou M190 sont détectées dans ce code personnalisé, Slic3r n'ajoutera pas de commandes de température. Notez que vous pouvez utiliser des variables génériques pour tous les réglages de Slic3r, donc vous pouvez entrer une commande \"M109S[first_layer_temperature]\" où vous le souhaitez."
|
||||
|
@ -8131,10 +8145,6 @@ msgstr "Ceci est la hauteur de couche imprimable maximum pour cet extrudeur, uti
|
|||
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 "Cette valeur est la hauteur de couche imprimable minimum pour cet extrudeur et elle limite la résolution pour la hauteur de couche variable. Les valeurs type se situent entre 0.05 mm et 0.1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Ceci est généralement provoqué par de petites extrusions négligeables ou par un modèle défectueux. Essayez de réparer le modèle ou de changer son orientation sur le lit."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Ceci est généralement provoqué par de petites extrusions négligeables ou par un modèle défectueux. Essayez de réparer le modèle ou de changer son orientation sur le lit."
|
||||
|
|
|
@ -337,6 +337,10 @@ msgstr "Un'espressione booleana che usa i valori di configurazione di un profilo
|
|||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Un'espressione booleana che usa i valori di configurazione di un profilo stampante attivo. Se questa espressione produce un risultato vero, questo profilo si considera compatibile con il profilo stampante attivo."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Verrà creata una copia del preset di sistema corrente, e verrà distaccata dal preset di sistema."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "Una regola generale è da 160 a 230°C per il PLA, e da 215 a 250°C per l'ABS."
|
||||
|
@ -1569,15 +1573,6 @@ msgstr "Il preset corrente è ereditato da"
|
|||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Il preset attuale è stato ereditato dal preset predefinito."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Il preset corrente è ereditato da:\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Versione corrente:"
|
||||
|
@ -1877,6 +1872,18 @@ msgstr "Deseleziona con rettangolo"
|
|||
msgid "Deselects all objects"
|
||||
msgstr "Deseleziona tutti gli oggetti"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Distacco dal preset di sistema"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Preset distacco"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Distaccato"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Rileva perimetri ponte (bridge)"
|
||||
|
@ -2140,6 +2147,23 @@ msgstr "Modifica segno di spunta - Clic destro"
|
|||
msgid "Editing"
|
||||
msgstr "Editing"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Ejec&t SD card / Flash drive"
|
||||
msgstr "(&t) Espelli Scheda SD / Memoria flash"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
|
||||
msgid "Eject SD card / Flash drive"
|
||||
msgstr "Espelli scheda SD / Memoria flash"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "Espelli scheda SD / Memoria flash dopo l'esportazione del G-code in essa."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "Espulsione del dispositivo %s(%s) non riuscita."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Compensazione zampa d'elefante"
|
||||
|
@ -2430,6 +2454,10 @@ msgstr "Esporta il piano corrente come AMF"
|
|||
msgid "Export current plate as G-code"
|
||||
msgstr "Esporta il piano corrente come G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export current plate as G-code to SD card / Flash drive"
|
||||
msgstr "Esporta il piano corrente come G-code su scheda SD / Memoria flash"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:486
|
||||
msgid "Export current plate as STL"
|
||||
msgstr "Esporta il piano corrente come STL"
|
||||
|
@ -2451,6 +2479,10 @@ msgstr "Esporta il percorso completo dei modelli e fonti delle parti nei file 3m
|
|||
msgid "Export G-code"
|
||||
msgstr "Esporta G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export G-code to SD card / Flash drive"
|
||||
msgstr "Esporta G-code su Scheda SD / Memoria flash"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3320
|
||||
msgid "Export OBJ"
|
||||
msgstr "Esporta OBJ"
|
||||
|
@ -2951,15 +2983,6 @@ msgstr "Per maggiori informazioni visita la nostra pagina wiki:"
|
|||
msgid "For support enforcers only"
|
||||
msgstr "Solo per rinforzi supporto"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
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 ""
|
||||
"per il tasto sinistro: indica un preset non di sistema (o non-predefinito),\n"
|
||||
"per il tasto destro: indica che le impostazioni non sono state modificate."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
|
@ -3375,17 +3398,6 @@ msgstr "File HTTPS CA"
|
|||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "File HTTPS CA opzionale. È necessario solo se si intende usare un HTTPS con certificato autofirmato."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, 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 ""
|
||||
"File HTTPS CA:\n"
|
||||
"Su questo sistema, %s utilizza certificati HTTPS provenienti dal sistema Certificate Store o da Keychain.\n"
|
||||
"Per utilizzare un file CA personalizzato, importa il tuo file CA sul Certificate Store / Keychain."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Dimensioni icona rispetto alla dimensione predefinita"
|
||||
|
@ -4170,7 +4182,7 @@ msgstr "Distanza massima bridging"
|
|||
|
||||
#: src/libslic3r/PrintConfig.cpp:2269
|
||||
msgid "Maximal distance between supports on sparse infill sections."
|
||||
msgstr "Distanza massima tra supporti in sezioni a scarso riempimento."
|
||||
msgstr "Distanza massima tra supporti in sezioni a riempimento sparso."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1145
|
||||
msgid "Maximum acceleration E"
|
||||
|
@ -4602,6 +4614,10 @@ msgstr "Riparazione modello terminata"
|
|||
msgid "Model repaired successfully"
|
||||
msgstr "Modello riparato con successo"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Verranno salvate le modifiche al profilo attuale."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "modificato"
|
||||
|
@ -4792,7 +4808,7 @@ msgstr "NESSUN RAMMING"
|
|||
|
||||
#: src/libslic3r/PrintConfig.cpp:1857
|
||||
msgid "No sparse layers (EXPERIMENTAL)"
|
||||
msgstr "Nessun layer rado (SPERIMENTALE)"
|
||||
msgstr "Nessun layer sparso (SPERIMENTALE)"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:2774
|
||||
msgid "No support points will be placed closer than this threshold."
|
||||
|
@ -5399,10 +5415,10 @@ msgstr "Preset (%s)"
|
|||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Preset con il nome \"%1%\" già esistente."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Copia"
|
||||
msgid "Copy"
|
||||
msgstr "Copia"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
|
@ -6441,16 +6457,6 @@ msgstr "Seleziona il tipo di Pad richiesto"
|
|||
msgid "Select what kind of support do you need"
|
||||
msgstr "Seleziona il tipo di supporto richiesto"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Seleziona SI se vuoi cancellare tutti i cambi attrezzo salvati,\n"
|
||||
"NO se vuoi che tutti i cambi attrezzo passino a cambi colore,\n"
|
||||
"o ANNULLA per lasciarlo invariato."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
|
@ -7616,6 +7622,10 @@ msgstr ""
|
|||
"Il dispositivo %s non è stato trovato.\n"
|
||||
"Se il dispositivo è connesso, premi il pulsante Reset vicino al connettore USB ..."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Il preset personalizzato corrente sarà staccato dal preset del sistema padre."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
|
@ -7772,18 +7782,14 @@ msgstr "L'oggetto selezionato non può essere diviso perché contiene più di un
|
|||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "L'oggetto selezionato non può essere diviso perché contiene solo una parte."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Il progetto selezionato non è più disponibile.\n"
|
||||
"Vuoi rimuoverlo dall'elenco dei progetti recenti?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Il progetto selezionato non è più disponibile"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
"The sequential print is on.\n"
|
||||
|
@ -7953,6 +7959,14 @@ msgstr ""
|
|||
msgid "This %s version: %s"
|
||||
msgstr "%s versione: %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Questa azione non è reversibile.\n"
|
||||
"Vuoi continuare?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Questo codice è inserito tra gli oggetti quando si utilizza una stampa sequenziale. Come predefinito, la temperatura di estrusione e del piano sono resettate con il comando non-attesa; in ogni caso se nel codice personalizzato vengono rilevati i comandi M104,M109,M140 o M190, Slic3r non aggiungerà i comandi di temperatura. Si fa presente che puoi usare variabili sostitutive per tutte le impostazioni di Slic3r, quindi puoi inserire un comando \"M109 S[first_layer_temperature]\" quando preferisci."
|
||||
|
@ -8120,10 +8134,6 @@ msgstr "Questa è la massima altezza layer stampabile per questo estrusore, usat
|
|||
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 dei layer. Valori tipici sono compresi tra 0.05 mm e 0.1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Questo solitamente è causato da estrusioni molto piccole o da un modello difettoso. Provare a riparare il modello o cambiare il suo orientamento sul piano."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Questo solitamente è causato da estrusioni molto piccole o da un modello difettoso. Provare a riparare il modello o cambiare il suo orientamento sul piano."
|
||||
|
|
|
@ -331,6 +331,10 @@ msgstr "アクティブなプリントプロファイルの構成値を使用す
|
|||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "アクティブなプリンタープロファイルの構成値を使った論理式です。 この論理式が真の場合、このプロファイルはアクティブなプリンタープロファイルと互換性があると見なされます。"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "現在のシステムプリセットからコピーを作成し、システムプリセットから切り離します。"
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "一般的には、PLAは160〜230℃、ABSは215〜250℃です。"
|
||||
|
@ -1561,13 +1565,6 @@ msgstr "現在のプリセット継承元"
|
|||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "現在の設定はデフォルト設定から継承されます。"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr "現在のプリセット継承元:%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "現在のバージョン:"
|
||||
|
@ -1867,6 +1864,18 @@ msgstr "方形で選択解除"
|
|||
msgid "Deselects all objects"
|
||||
msgstr "全てのオブジェクトの選択解除"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "システムプリセットから取り外す"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "プリセットを切り離す"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "取り外しました"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "ブリッジ外周の検出"
|
||||
|
@ -2127,6 +2136,23 @@ msgstr "マーカーの編集-マウスの右ボタン"
|
|||
msgid "Editing"
|
||||
msgstr "編集中"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Ejec&t SD card / Flash drive"
|
||||
msgstr "SDカード/USBメモリーを取り出す(&t)"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
|
||||
msgid "Eject SD card / Flash drive"
|
||||
msgstr "SDカード/USBメモリーを取り出す"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "Gコードをエクスポートした後に、SDカード/USBメモリーを取り出します。"
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "デバイス %s(%s) の取り出しに失敗しました。"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "最初の層の広がり補正"
|
||||
|
@ -2417,6 +2443,10 @@ msgstr "現在のプレートをAMFとしてエクスポート"
|
|||
msgid "Export current plate as G-code"
|
||||
msgstr "現在のプレートをGコードとしてエクスポート"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export current plate as G-code to SD card / Flash drive"
|
||||
msgstr "現在のプレートをGコードとしてSDカード/USBメモリーにエクスポート"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:486
|
||||
msgid "Export current plate as STL"
|
||||
msgstr "現在のプレートをSTLとしてエクスポート"
|
||||
|
@ -2438,6 +2468,10 @@ msgstr "モデルのフルパス名とパーツソースを3mfおよびamfファ
|
|||
msgid "Export G-code"
|
||||
msgstr "Gコードのエクスポート"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export G-code to SD card / Flash drive"
|
||||
msgstr "GコードをSDカード/USBメモリーにエクスポート"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3320
|
||||
msgid "Export OBJ"
|
||||
msgstr "OBJのエクスポート"
|
||||
|
@ -2938,13 +2972,6 @@ msgstr "詳細については、Wikiページをご覧ください:"
|
|||
msgid "For support enforcers only"
|
||||
msgstr "強制サポートのみ"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
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 "左ボタンの場合:システム(デフォルト)プリセットでないことを示し、右側ボタンの場合:設定が変更されていないことを示します。"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
|
@ -3362,17 +3389,6 @@ msgstr "HTTPS CAファイル"
|
|||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "HTTPS CAファイルはオプションです。 HTTPSを自己署名証明書で使用する場合にのみ必要です。"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, 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ファイル:\n"
|
||||
" このシステムでは、%sはシステムの証明書ストアまたはキーチェーンからのHTTPS証明書を使用します。\n"
|
||||
" カスタムCAファイルを使用するには、CAファイルを証明書ストア/キーチェーンにインポートしてください。"
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "デフォルトのサイズと相対的なアイコンのサイズ"
|
||||
|
@ -4572,6 +4588,10 @@ msgstr "モデル修正完了"
|
|||
msgid "Model repaired successfully"
|
||||
msgstr "モデルの修復完了"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "現在のプロファイルの編集が保存されます。"
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "変更あり"
|
||||
|
@ -5370,10 +5390,10 @@ msgstr "プリセット(%s)"
|
|||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "\"%1%\"というプリセット名は既に存在します。"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - コピー"
|
||||
msgid "Copy"
|
||||
msgstr "コピー"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
|
@ -6409,16 +6429,6 @@ msgstr "必要なパッドの種類を選択してください"
|
|||
msgid "Select what kind of support do you need"
|
||||
msgstr "必要なサポートの種類を選択してください"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"保存したツールの変更をすべて削除する場合は、「はい」を選択します。\n"
|
||||
"すべてのツールの変更を色の変更に切り替えたい場合は「いいえ」、\n"
|
||||
"または「キャンセル」で変更せずにそのままにします"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
|
@ -7579,6 +7589,10 @@ msgstr ""
|
|||
"%sデバイスが見つかりませんでした。\n"
|
||||
"デバイスが接続されている場合は、USBコネクタの横にあるリセットボタンを押してください..."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "現在のカスタムプリセットは、親システムプリセットから切り離されます。"
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
|
@ -7734,18 +7748,14 @@ msgstr "選択したオブジェクトには複数のボリューム/マテリ
|
|||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "選択したオブジェクトには、1つのパーツしか含まれていないため、分割できませんでした。"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"選択したプロジェクトは使用できなくなりました。\n"
|
||||
"最近のプロジェクトリストから削除しますか?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "選択したプロジェクトはもう利用できません"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
"The sequential print is on.\n"
|
||||
|
@ -7914,6 +7924,14 @@ msgstr ""
|
|||
msgid "This %s version: %s"
|
||||
msgstr "この%sのバージョン: %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"この操作は元に戻せません。\n"
|
||||
"続行しますか?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "このコードは、オブジェクト別の順次プリンティングを使用するとき、オブジェクト間に挿入されます。 デフォルトでは、エクストルーダーとベッドの温度は非待機コマンドを使用します(M104/M140)。 ただし、このカスタムコードでM104、M109、M140またはM190が記述された場合、Slic3rは温度コマンドを追加しません。 すべてのSlic3r代替変数を使用できるため、「M109 S [first_layer_temperature]」コマンドを必要な場所に記述できます。"
|
||||
|
@ -8082,10 +8100,6 @@ msgstr "これは、このエクストルーダーの最大プリント可能レ
|
|||
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 "このエクストルーダーの最小プリント可能なレイヤー高さ。 可変レイヤー高の解像度を制限します。一般的な値は0.05mmと0.1mmの間です。"
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "これは通常、無視できるほど少量の押出量またはモデルの欠陥が原因です。 ベッド上のモデルの修復または向きを再配置してみてください。"
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "これは通常、無視できるほど少量の押出量またはモデルの欠陥が原因です。 ベッド上のモデルの修復または向きを再配置してみてください。"
|
||||
|
|
|
@ -337,6 +337,10 @@ msgstr "Wyrażenie logiczne (Boole'owskie) używające wartości konfiguracji ak
|
|||
msgid "A boolean expression using the configuration values of an active printer profile. If this expression evaluates to true, this profile is considered compatible with the active printer profile."
|
||||
msgstr "Wyrażenie logiczne (Boole'owskie) używające wartości konfiguracji aktywnego profilu drukarki. Jeśli to wyrażenie jest prawdziwe to znaczy, że aktywny profil jest kompatybilny z drukarką."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:975
|
||||
msgid "A copy of the current system preset will be created, which will be detached from the system preset."
|
||||
msgstr "Zostanie utworzona kopia obecnego zestawu ustawień i odłączona od ustawień systemowych."
|
||||
|
||||
#: src/slic3r/GUI/ConfigWizard.cpp:1034
|
||||
msgid "A rule of thumb is 160 to 230 °C for PLA, and 215 to 250 °C for ABS."
|
||||
msgstr "Generalną zasadą jest 160 do 230 °C dla PLA i 215 do 250 °C dla ABS."
|
||||
|
@ -1569,15 +1573,6 @@ msgstr "Obecny zestaw ustawień jest dziedziczony z"
|
|||
msgid "Current preset is inherited from the default preset."
|
||||
msgstr "Obecny zestaw ustawień jest dziedziczony z zestawu domyślnego."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:960
|
||||
#, c-format
|
||||
msgid ""
|
||||
"Current preset is inherited from:\n"
|
||||
"\t%s"
|
||||
msgstr ""
|
||||
"Obecny zestaw ustawień jest dziedziczony z:\n"
|
||||
"%s"
|
||||
|
||||
#: src/slic3r/GUI/UpdateDialogs.cpp:43
|
||||
msgid "Current version:"
|
||||
msgstr "Obecna wersja:"
|
||||
|
@ -1877,6 +1872,18 @@ msgstr "Odznaczenie prostokątem"
|
|||
msgid "Deselects all objects"
|
||||
msgstr "Odznacza wszystkie modele"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:963
|
||||
msgid "Detach from system preset"
|
||||
msgstr "Odłącz od ustawień systemowych"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:984
|
||||
msgid "Detach preset"
|
||||
msgstr "Odłącz zestaw ustawień"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgid "Detached"
|
||||
msgstr "Odłączono"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:1373
|
||||
msgid "Detect bridging perimeters"
|
||||
msgstr "Wykrywanie mostów przy obrysach"
|
||||
|
@ -2140,6 +2147,23 @@ msgstr "Edytuj zaznaczenie - kliknij prawym przyciskiem"
|
|||
msgid "Editing"
|
||||
msgstr "Edytowanie"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Ejec&t SD card / Flash drive"
|
||||
msgstr "Wysuń kar&tę SD / pamięć flash"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:126
|
||||
msgid "Eject SD card / Flash drive"
|
||||
msgstr "Wysuń kartę SD / pamięć flash"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:547
|
||||
msgid "Eject SD card / Flash drive after the G-code was exported to it."
|
||||
msgstr "Wysuń kartę SD / pamięć flash po wyeksportowaniu na nią G-code."
|
||||
|
||||
#: src/slic3r/GUI/Plater.cpp:2202
|
||||
#, c-format
|
||||
msgid "Ejecting of device %s(%s) has failed."
|
||||
msgstr "Wysuwanie urządzenia %s(%s) nie powiodło się."
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:118
|
||||
msgid "Elephant foot compensation"
|
||||
msgstr "Kompensacja \"stopy słonia\""
|
||||
|
@ -2430,6 +2454,10 @@ msgstr "Eksport zawartości stołu jako AMF"
|
|||
msgid "Export current plate as G-code"
|
||||
msgstr "Eksport zawartości stołu jako G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export current plate as G-code to SD card / Flash drive"
|
||||
msgstr "Eksport zawartości stołu jako G-gode na kartę SD / pamięć flash"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:486
|
||||
msgid "Export current plate as STL"
|
||||
msgstr "Eksport zawartości stołu jako STL"
|
||||
|
@ -2451,6 +2479,10 @@ msgstr "Eksport pełnych ścieżek źródłowych modeli i części do plików 3M
|
|||
msgid "Export G-code"
|
||||
msgstr "Eksport G-code"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:521
|
||||
msgid "Export G-code to SD card / Flash drive"
|
||||
msgstr "Eksport G-gode na kartę SD / pamięć flash"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:3320
|
||||
msgid "Export OBJ"
|
||||
msgstr "Eksport OBJ"
|
||||
|
@ -2951,15 +2983,6 @@ msgstr "Aby uzyskać więcej informacji odwiedź naszą wiki:"
|
|||
msgid "For support enforcers only"
|
||||
msgstr "Tylko dla wymuszania podpór"
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3265
|
||||
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 ""
|
||||
"dla lewego przycisku: wskazuje na niesystemowy (lub inny niż domyślny) zestaw ustawień,\n"
|
||||
"dla prawego przycisku: wskazuje, że ustawienia nie zostały zmodyfikowane."
|
||||
|
||||
#. TRN Description for "WHITE BULLET"
|
||||
#: src/slic3r/GUI/Tab.cpp:3267
|
||||
msgid ""
|
||||
|
@ -3377,16 +3400,6 @@ msgstr "Plik certyfikatu HTTPS CA"
|
|||
msgid "HTTPS CA file is optional. It is only needed if you use HTTPS with a self-signed certificate."
|
||||
msgstr "Plik HTTPS CA jest opcjonalny. Jest potrzebny jedynie w sytuacji, gdy używasz HTTPS z certyfikatem samopodpisanym."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:1757
|
||||
#, 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 ""
|
||||
"Plik certyfikatu HTTPS:\n"
|
||||
"W tym systemie, %s używa certyfikatu HTTPS z magazynu systemowego (Certificate Store) lub Keychain. Aby użyć własnego certyfikatu, zaimportuj plik do Certificate Store / Keychain."
|
||||
|
||||
#: src/slic3r/GUI/Preferences.cpp:222
|
||||
msgid "Icon size in a respect to the default size"
|
||||
msgstr "Rozmiar ikon w odniesieniu do domyślnego"
|
||||
|
@ -4603,6 +4616,10 @@ msgstr "Ukończono naprawę modelu"
|
|||
msgid "Model repaired successfully"
|
||||
msgstr "Model naprawiono pomyślnie"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:979
|
||||
msgid "Modifications to the current profile will be saved."
|
||||
msgstr "Modyfikacje zostaną zapisane na obecnym profilu."
|
||||
|
||||
#: src/slic3r/GUI/Preset.cpp:247
|
||||
msgid "modified"
|
||||
msgstr "zmodyfikowano"
|
||||
|
@ -5400,10 +5417,10 @@ msgstr "Zestaw ustawień (%s)"
|
|||
msgid "Preset with name \"%1%\" already exists."
|
||||
msgstr "Zestaw ustawień o nazwie \"%1%\" już istnieje."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:3045
|
||||
#: src/slic3r/GUI/Tab.cpp:3029
|
||||
msgctxt "PresetName"
|
||||
msgid "%1% - Copy"
|
||||
msgstr "%1% - Kopia"
|
||||
msgid "Copy"
|
||||
msgstr "Kopia"
|
||||
|
||||
#: src/slic3r/GUI/KBShortcutsDialog.cpp:163
|
||||
msgid "Press to activate deselection rectangle"
|
||||
|
@ -6446,16 +6463,6 @@ msgstr "Wybierz rodzaj wymaganej podkładki"
|
|||
msgid "Select what kind of support do you need"
|
||||
msgstr "Wybierz rodzaj potrzebnych podpór"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
"\tNO if you want all tool changes switch to color changes, \n"
|
||||
"\tor CANCEL to leave it unchanged."
|
||||
msgstr ""
|
||||
"Wybierz TAK, jeśli chcesz usunąć wszystkie zapisane zmiany narzędzi,\n"
|
||||
"NIE, jeśli chcesz przełączyć zmiany narzędzi na zmiany koloru lub\n"
|
||||
"ANULUJ, aby pozostawić bez zmian."
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:1917
|
||||
msgid ""
|
||||
"Select YES if you want to delete all saved tool changes, \n"
|
||||
|
@ -7618,6 +7625,10 @@ msgstr ""
|
|||
"Nie znaleziono urządzenia %s .\n"
|
||||
"Jeśli urządzenie jest podłączone, to naciśnij przycisk Reset obok złącza USB ..."
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:976
|
||||
msgid "The current custom preset will be detached from the parent system preset."
|
||||
msgstr "Obecny niestandardowy zestaw ustawień zostanie odłączony od dziedziczącego zestawu systemowego."
|
||||
|
||||
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:875
|
||||
msgid ""
|
||||
"The currently manipulated object is tilted (rotation angles are not multiples of 90°).\n"
|
||||
|
@ -7774,18 +7785,14 @@ msgstr "Wybrany model nie może być podzielony ponieważ składa się z więcej
|
|||
msgid "The selected object couldn't be split because it contains only one part."
|
||||
msgstr "Wybrany model nie może być rozdzielony ponieważ zawiera tylko jedną część."
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:432
|
||||
#: src/slic3r/GUI/MainFrame.cpp:461
|
||||
msgid ""
|
||||
"The selected project is no longer available.\n"
|
||||
"Do you want to remove it from the recent projects list ?"
|
||||
"Do you want to remove it from the recent projects list?"
|
||||
msgstr ""
|
||||
"Wybrany obiekt nie jest już dostępny.\n"
|
||||
"Czy chcesz usunąć go z listy niedawno używanych projektów?"
|
||||
|
||||
#: src/slic3r/GUI/MainFrame.cpp:422
|
||||
msgid "The selected project is no more available"
|
||||
msgstr "Wybrany projekt nie jest dostępny"
|
||||
|
||||
#: src/slic3r/GUI/DoubleSlider.cpp:998
|
||||
msgid ""
|
||||
"The sequential print is on.\n"
|
||||
|
@ -7955,6 +7962,14 @@ msgstr ""
|
|||
msgid "This %s version: %s"
|
||||
msgstr "%s wersja: %s"
|
||||
|
||||
#: src/slic3r/GUI/Tab.cpp:982
|
||||
msgid ""
|
||||
"This action is not revertable.\n"
|
||||
"Do you want to proceed?"
|
||||
msgstr ""
|
||||
"Tej czynności nie można odwrócić.\n"
|
||||
"Czy chcesz kontynuować?"
|
||||
|
||||
#: src/libslic3r/PrintConfig.cpp:165
|
||||
msgid "This code is inserted between objects when using sequential printing. By default extruder and bed temperature are reset using non-wait command; however if M104, M109, M140 or M190 are detected in this custom code, Slic3r will not add temperature commands. Note that you can use placeholder variables for all Slic3r settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
|
||||
msgstr "Ten kod jest wykonywany pomiędzy drukiem poszczególnych modeli w trybie druku sekwencyjnego. Domyślnie przy komendzie non-wait temperatury dyszy i stołu są resetowane; jednakże jeśli przy tej opcji zostaną użyte komendy M104, M109, M140 lub M190 to Slic3r nie doda własnych komend do kontroli temperatury. Pamiętaj, że możesz używać zmiennych typu placeholder, więc np. komendę \"M109 S[first_layer_temperature]\" (temperatura pierwszej warstwy) możesz umieścić gdzie chcesz."
|
||||
|
@ -8123,10 +8138,6 @@ msgstr "To jest najwyższa możliwa do wydrukowania wysokość warstwy dla tego
|
|||
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 "To jest najniższa możliwa do wydrukowania wysokość warstwy dla tego ekstrudera i jednocześnie dolny limit dla funkcji zmiennej wysokości warstwy. Zazwyczaj jest to 0.05 lub 0.1 mm."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Dzieje się to zazwyczaj z powodu zbyt małych odcinków ekstruzji (są one pomijane) lub uszkodzenia modelu. Spróbuj naprawić model lub zmienić jego orientację na stole."
|
||||
|
||||
#: src/libslic3r/GCode.cpp:639
|
||||
msgid "This is usually caused by negligibly small extrusions or by a faulty model. Try to repair the model or change its orientation on the bed."
|
||||
msgstr "Dzieje się to zazwyczaj z powodu zbyt małych odcinków ekstruzji (są one pomijane) lub uszkodzenia modelu. Spróbuj naprawić model lub zmienić jego orientację na stole."
|
||||
|
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
BIN
resources/profiles/BIBO/BIBO2_thumbnail.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
resources/profiles/Creality/ENDER3_thumbnail.png
Normal file
After Width: | Height: | Size: 58 KiB |
2
resources/profiles/LulzBot.idx
Normal file
|
@ -0,0 +1,2 @@
|
|||
min_slic3r_version = 2.2.0-alpha3
|
||||
0.0.1 Initial version
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
[vendor]
|
||||
# Vendor name will be shown by the Config Wizard.
|
||||
name = Lulzbot
|
||||
name = LulzBot
|
||||
config_version = 0.0.1
|
||||
config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/Lulzbot/
|
||||
config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/LulzBot/
|
||||
|
||||
[printer_model:MINI_AERO]
|
||||
name = Mini Aero
|
BIN
resources/profiles/LulzBot/MINI_AERO_thumbnail.png
Normal file
After Width: | Height: | Size: 46 KiB |
BIN
resources/profiles/LulzBot/TAZ6_AERO_thumbnail.png
Normal file
After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
@ -470,7 +470,7 @@ void GCodeAnalyzer::_processM106(const GCodeReader::GCodeLine& line)
|
|||
// The absence of P means the print cooling fan, so ignore anything else.
|
||||
float new_fan_speed;
|
||||
if (line.has_value('S', new_fan_speed))
|
||||
_set_fan_speed((100.0f / 256.0f) * new_fan_speed);
|
||||
_set_fan_speed((100.0f / 255.0f) * new_fan_speed);
|
||||
else
|
||||
_set_fan_speed(100.0f);
|
||||
}
|
||||
|
|
|
@ -101,8 +101,7 @@ void BackgroundSlicingProcess::process_fff()
|
|||
//FIXME localize the messages
|
||||
// Perform the final post-processing of the export path by applying the print statistics over the file name.
|
||||
std::string export_path = m_fff_print->print_statistics().finalize_output_path(m_export_path);
|
||||
bool with_check = GUI::wxGetApp().removable_drive_manager()->is_path_on_removable_drive(export_path);
|
||||
int copy_ret_val = copy_file(m_temp_output_path, export_path, with_check);
|
||||
int copy_ret_val = copy_file(m_temp_output_path, export_path, m_export_path_on_removable_media);
|
||||
switch (copy_ret_val) {
|
||||
case SUCCESS: break; // no error
|
||||
case FAIL_COPY_FILE:
|
||||
|
@ -402,7 +401,7 @@ void BackgroundSlicingProcess::set_task(const PrintBase::TaskParams ¶ms)
|
|||
}
|
||||
|
||||
// Set the output path of the G-code.
|
||||
void BackgroundSlicingProcess::schedule_export(const std::string &path)
|
||||
void BackgroundSlicingProcess::schedule_export(const std::string &path, bool export_path_on_removable_media)
|
||||
{
|
||||
assert(m_export_path.empty());
|
||||
if (! m_export_path.empty())
|
||||
|
@ -412,6 +411,7 @@ void BackgroundSlicingProcess::schedule_export(const std::string &path)
|
|||
tbb::mutex::scoped_lock lock(m_print->state_mutex());
|
||||
this->invalidate_step(bspsGCodeFinalize);
|
||||
m_export_path = path;
|
||||
m_export_path_on_removable_media = export_path_on_removable_media;
|
||||
}
|
||||
|
||||
void BackgroundSlicingProcess::schedule_upload(Slic3r::PrintHostJob upload_job)
|
||||
|
@ -432,6 +432,7 @@ void BackgroundSlicingProcess::reset_export()
|
|||
assert(! this->running());
|
||||
if (! this->running()) {
|
||||
m_export_path.clear();
|
||||
m_export_path_on_removable_media = false;
|
||||
// invalidate_step expects the mutex to be locked.
|
||||
tbb::mutex::scoped_lock lock(m_print->state_mutex());
|
||||
this->invalidate_step(bspsGCodeFinalize);
|
||||
|
|
|
@ -98,7 +98,7 @@ public:
|
|||
|
||||
// Set the export path of the G-code.
|
||||
// Once the path is set, the G-code
|
||||
void schedule_export(const std::string &path);
|
||||
void schedule_export(const std::string &path, bool export_path_on_removable_media);
|
||||
// Set print host upload job data to be enqueued to the PrintHostJobQueue
|
||||
// after current print slicing is complete
|
||||
void schedule_upload(Slic3r::PrintHostJob upload_job);
|
||||
|
@ -157,13 +157,14 @@ private:
|
|||
GCodePreviewData *m_gcode_preview_data = nullptr;
|
||||
#if ENABLE_THUMBNAIL_GENERATOR
|
||||
// Callback function, used to write thumbnails into gcode.
|
||||
ThumbnailsGeneratorCallback m_thumbnail_cb = nullptr;
|
||||
ThumbnailsGeneratorCallback m_thumbnail_cb = nullptr;
|
||||
#endif // ENABLE_THUMBNAIL_GENERATOR
|
||||
// Temporary G-code, there is one defined for the BackgroundSlicingProcess, differentiated from the other processes by a process ID.
|
||||
std::string m_temp_output_path;
|
||||
// Output path provided by the user. The output path may be set even if the slicing is running,
|
||||
// but once set, it cannot be re-set.
|
||||
std::string m_export_path;
|
||||
bool m_export_path_on_removable_media = false;
|
||||
// Print host upload job to schedule after slicing is complete, used by schedule_upload(),
|
||||
// empty by default (ie. no upload to schedule)
|
||||
PrintHostJob m_upload_job;
|
||||
|
|
|
@ -188,7 +188,7 @@ PrinterPicker::PrinterPicker(wxWindow *parent, const VendorProfile &vendor, wxSt
|
|||
|
||||
wxBitmap bitmap;
|
||||
int bitmap_width = 0;
|
||||
const wxString bitmap_file = GUI::from_u8(Slic3r::var((boost::format("printers/%1%_%2%.png") % vendor.id % model.id).str()));
|
||||
const wxString bitmap_file = GUI::from_u8(Slic3r::resources_dir() + "/profiles/" + vendor.id + "/" + model.id + "_thumbnail.png");
|
||||
if (wxFileExists(bitmap_file)) {
|
||||
bitmap.LoadFile(bitmap_file, wxBITMAP_TYPE_PNG);
|
||||
bitmap_width = bitmap.GetWidth();
|
||||
|
|
|
@ -663,7 +663,7 @@ void GLCanvas3D::WarningTexture::activate(WarningTexture::Warning warning, bool
|
|||
if (it != m_warnings.end()) // this warning is already set to be shown
|
||||
return;
|
||||
|
||||
m_warnings.push_back(warning);
|
||||
m_warnings.emplace_back(warning);
|
||||
std::sort(m_warnings.begin(), m_warnings.end());
|
||||
}
|
||||
else {
|
||||
|
@ -1289,7 +1289,7 @@ void GLCanvas3D::Labels::render(const std::vector<const ModelInstance*>& sorted_
|
|||
if (model_object->instances.size() > 1)
|
||||
owner.label += " (" + std::to_string(inst_idx + 1) + ")";
|
||||
owner.selected = volume->selected;
|
||||
owners.push_back(owner);
|
||||
owners.emplace_back(owner);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2029,7 +2029,7 @@ std::vector<int> GLCanvas3D::load_object(const ModelObject& model_object, int ob
|
|||
{
|
||||
for (unsigned int i = 0; i < model_object.instances.size(); ++i)
|
||||
{
|
||||
instance_idxs.push_back(i);
|
||||
instance_idxs.emplace_back(i);
|
||||
}
|
||||
}
|
||||
return m_volumes.load_object(&model_object, obj_idx, instance_idxs, m_color_by, m_initialized);
|
||||
|
@ -2469,9 +2469,9 @@ static void load_gcode_retractions(const GCodePreviewData::Retraction& retractio
|
|||
|
||||
for (const GCodePreviewData::Retraction::Position& position : copy)
|
||||
{
|
||||
volume->print_zs.push_back(unscale<double>(position.position(2)));
|
||||
volume->offsets.push_back(volume->indexed_vertex_array.quad_indices.size());
|
||||
volume->offsets.push_back(volume->indexed_vertex_array.triangle_indices.size());
|
||||
volume->print_zs.emplace_back(unscale<double>(position.position(2)));
|
||||
volume->offsets.emplace_back(volume->indexed_vertex_array.quad_indices.size());
|
||||
volume->offsets.emplace_back(volume->indexed_vertex_array.triangle_indices.size());
|
||||
|
||||
_3DScene::point3_to_verts(position.position, position.width, position.height, *volume);
|
||||
|
||||
|
@ -4109,7 +4109,7 @@ void GLCanvas3D::_render_thumbnail_internal(ThumbnailData& thumbnail_data, bool
|
|||
if (!vol->is_modifier && !vol->is_wipe_tower && (!parts_only || (vol->composite_id.volume_id >= 0)))
|
||||
{
|
||||
if (!printable_only || is_visible(*vol))
|
||||
visible_volumes.push_back(vol);
|
||||
visible_volumes.emplace_back(vol);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4813,7 +4813,7 @@ void GLCanvas3D::_picking_pass() const
|
|||
}
|
||||
if ((0 <= volume_id) && (volume_id < (int)m_volumes.volumes.size()))
|
||||
{
|
||||
m_hover_volume_idxs.push_back(volume_id);
|
||||
m_hover_volume_idxs.emplace_back(volume_id);
|
||||
m_gizmos.set_hover_id(-1);
|
||||
}
|
||||
else
|
||||
|
@ -5057,7 +5057,7 @@ void GLCanvas3D::_render_overlays() const
|
|||
if (sequential_print) {
|
||||
for (ModelObject* model_object : m_model->objects)
|
||||
for (ModelInstance* model_instance : model_object->instances) {
|
||||
sorted_instances.push_back(model_instance);
|
||||
sorted_instances.emplace_back(model_instance);
|
||||
}
|
||||
}
|
||||
m_labels.render(sorted_instances);
|
||||
|
@ -5515,29 +5515,26 @@ void GLCanvas3D::_load_print_toolpaths()
|
|||
if ((skirt_height == 0) && (print->config().brim_width.value > 0))
|
||||
skirt_height = 1;
|
||||
|
||||
// get first skirt_height layers (maybe this should be moved to a PrintObject method?)
|
||||
const PrintObject* object0 = print->objects().front();
|
||||
// Get first skirt_height layers.
|
||||
//FIXME This code is fishy. It may not work for multiple objects with different layering due to variable layer height feature.
|
||||
// This is not critical as this is just an initial preview.
|
||||
const PrintObject* highest_object = *std::max_element(print->objects().begin(), print->objects().end(), [](auto l, auto r){ return l->layers().size() < r->layers().size(); });
|
||||
std::vector<float> print_zs;
|
||||
print_zs.reserve(skirt_height * 2);
|
||||
for (size_t i = 0; i < std::min(skirt_height, object0->layers().size()); ++i)
|
||||
{
|
||||
print_zs.push_back(float(object0->layers()[i]->print_z));
|
||||
}
|
||||
//FIXME why there are support layers?
|
||||
for (size_t i = 0; i < std::min(skirt_height, object0->support_layers().size()); ++i)
|
||||
{
|
||||
print_zs.push_back(float(object0->support_layers()[i]->print_z));
|
||||
}
|
||||
for (size_t i = 0; i < std::min(skirt_height, highest_object->layers().size()); ++ i)
|
||||
print_zs.emplace_back(float(highest_object->layers()[i]->print_z));
|
||||
// Only add skirt for the raft layers.
|
||||
for (size_t i = 0; i < std::min(skirt_height, std::min(highest_object->slicing_parameters().raft_layers(), highest_object->support_layers().size())); ++ i)
|
||||
print_zs.emplace_back(float(highest_object->support_layers()[i]->print_z));
|
||||
sort_remove_duplicates(print_zs);
|
||||
if (print_zs.size() > skirt_height)
|
||||
print_zs.erase(print_zs.begin() + skirt_height, print_zs.end());
|
||||
|
||||
skirt_height = std::min(skirt_height, print_zs.size());
|
||||
print_zs.erase(print_zs.begin() + skirt_height, print_zs.end());
|
||||
|
||||
GLVolume *volume = m_volumes.new_toolpath_volume(color, VERTEX_BUFFER_RESERVE_SIZE);
|
||||
for (size_t i = 0; i < skirt_height; ++i) {
|
||||
volume->print_zs.push_back(print_zs[i]);
|
||||
volume->offsets.push_back(volume->indexed_vertex_array.quad_indices.size());
|
||||
volume->offsets.push_back(volume->indexed_vertex_array.triangle_indices.size());
|
||||
for (size_t i = 0; i < skirt_height; ++ i) {
|
||||
volume->print_zs.emplace_back(print_zs[i]);
|
||||
volume->offsets.emplace_back(volume->indexed_vertex_array.quad_indices.size());
|
||||
volume->offsets.emplace_back(volume->indexed_vertex_array.triangle_indices.size());
|
||||
if (i == 0)
|
||||
_3DScene::extrusionentity_to_verts(print->brim(), print_zs[i], Point(0, 0), *volume);
|
||||
_3DScene::extrusionentity_to_verts(print->skirt(), print_zs[i], Point(0, 0), *volume);
|
||||
|
@ -5703,10 +5700,10 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c
|
|||
}
|
||||
if (ctxt.has_perimeters || ctxt.has_infill)
|
||||
for (const Layer *layer : print_object.layers())
|
||||
ctxt.layers.push_back(layer);
|
||||
ctxt.layers.emplace_back(layer);
|
||||
if (ctxt.has_support)
|
||||
for (const Layer *layer : print_object.support_layers())
|
||||
ctxt.layers.push_back(layer);
|
||||
ctxt.layers.emplace_back(layer);
|
||||
std::sort(ctxt.layers.begin(), ctxt.layers.end(), [](const Layer *l1, const Layer *l2) { return l1->print_z < l2->print_z; });
|
||||
|
||||
// Maximum size of an allocation block: 32MB / sizeof(float)
|
||||
|
@ -5775,9 +5772,9 @@ void GLCanvas3D::_load_print_object_toolpaths(const PrintObject& print_object, c
|
|||
|
||||
for (GLVolume *vol : vols)
|
||||
if (vol->print_zs.empty() || vol->print_zs.back() != layer->print_z) {
|
||||
vol->print_zs.push_back(layer->print_z);
|
||||
vol->offsets.push_back(vol->indexed_vertex_array.quad_indices.size());
|
||||
vol->offsets.push_back(vol->indexed_vertex_array.triangle_indices.size());
|
||||
vol->print_zs.emplace_back(layer->print_z);
|
||||
vol->offsets.emplace_back(vol->indexed_vertex_array.quad_indices.size());
|
||||
vol->offsets.emplace_back(vol->indexed_vertex_array.triangle_indices.size());
|
||||
}
|
||||
for (const PrintInstance &instance : *ctxt.shifted_copies) {
|
||||
const Point © = instance.shift;
|
||||
|
@ -5933,9 +5930,9 @@ void GLCanvas3D::_load_wipe_tower_toolpaths(const std::vector<std::string>& str_
|
|||
for (size_t i = 0; i < vols.size(); ++i) {
|
||||
GLVolume &vol = *vols[i];
|
||||
if (vol.print_zs.empty() || vol.print_zs.back() != layer.front().print_z) {
|
||||
vol.print_zs.push_back(layer.front().print_z);
|
||||
vol.offsets.push_back(vol.indexed_vertex_array.quad_indices.size());
|
||||
vol.offsets.push_back(vol.indexed_vertex_array.triangle_indices.size());
|
||||
vol.print_zs.emplace_back(layer.front().print_z);
|
||||
vol.offsets.emplace_back(vol.indexed_vertex_array.quad_indices.size());
|
||||
vol.offsets.emplace_back(vol.indexed_vertex_array.triangle_indices.size());
|
||||
}
|
||||
}
|
||||
for (const WipeTower::ToolChangeResult &extrusions : layer) {
|
||||
|
@ -6148,9 +6145,9 @@ void GLCanvas3D::_load_gcode_extrusion_paths(const GCodePreviewData& preview_dat
|
|||
assert(it_filter != filters.end() && key.first == it_filter->first);
|
||||
|
||||
GLVolume& vol = *it_filter->second;
|
||||
vol.print_zs.push_back(layer.z);
|
||||
vol.offsets.push_back(vol.indexed_vertex_array.quad_indices.size());
|
||||
vol.offsets.push_back(vol.indexed_vertex_array.triangle_indices.size());
|
||||
vol.print_zs.emplace_back(layer.z);
|
||||
vol.offsets.emplace_back(vol.indexed_vertex_array.quad_indices.size());
|
||||
vol.offsets.emplace_back(vol.indexed_vertex_array.triangle_indices.size());
|
||||
|
||||
_3DScene::extrusionentity_to_verts(path.polyline, path.width, path.height, layer.z, vol);
|
||||
}
|
||||
|
@ -6222,9 +6219,9 @@ inline void travel_paths_internal(
|
|||
assert(it != by_type.end() && it->first == func_value(polyline));
|
||||
|
||||
GLVolume& vol = *it->second;
|
||||
vol.print_zs.push_back(unscale<double>(polyline.polyline.bounding_box().min(2)));
|
||||
vol.offsets.push_back(vol.indexed_vertex_array.quad_indices.size());
|
||||
vol.offsets.push_back(vol.indexed_vertex_array.triangle_indices.size());
|
||||
vol.print_zs.emplace_back(unscale<double>(polyline.polyline.bounding_box().min(2)));
|
||||
vol.offsets.emplace_back(vol.indexed_vertex_array.quad_indices.size());
|
||||
vol.offsets.emplace_back(vol.indexed_vertex_array.triangle_indices.size());
|
||||
|
||||
_3DScene::polyline3_to_verts(polyline.polyline, preview_data.travel.width, preview_data.travel.height, vol);
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <boost/lexical_cast.hpp>
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/log/trivial.hpp>
|
||||
#include <boost/nowide/convert.hpp>
|
||||
|
||||
#include <wx/stdpaths.h>
|
||||
#include <wx/imagpng.h>
|
||||
|
@ -50,6 +51,7 @@
|
|||
|
||||
#ifdef __WXMSW__
|
||||
#include <Shlobj.h>
|
||||
#include <dbt.h>
|
||||
#endif // __WXMSW__
|
||||
|
||||
#if ENABLE_THUMBNAIL_GENERATOR_DEBUG
|
||||
|
@ -60,6 +62,7 @@
|
|||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
||||
class MainFrame;
|
||||
|
||||
wxString file_wildcards(FileType file_type, const std::string &custom_extension)
|
||||
{
|
||||
|
@ -96,9 +99,9 @@ wxString file_wildcards(FileType file_type, const std::string &custom_extension)
|
|||
|
||||
static std::string libslic3r_translate_callback(const char *s) { return wxGetTranslation(wxString(s, wxConvUTF8)).utf8_str().data(); }
|
||||
|
||||
static void register_dpi_event()
|
||||
{
|
||||
#ifdef WIN32
|
||||
static void register_win32_dpi_event()
|
||||
{
|
||||
enum { WM_DPICHANGED_ = 0x02e0 };
|
||||
|
||||
wxWindow::MSWRegisterMessageHandler(WM_DPICHANGED_, [](wxWindow *win, WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) {
|
||||
|
@ -111,9 +114,52 @@ static void register_dpi_event()
|
|||
|
||||
return true;
|
||||
});
|
||||
#endif
|
||||
}
|
||||
|
||||
static GUID GUID_DEVINTERFACE_HID = { 0x4D1E55B2, 0xF16F, 0x11CF, 0x88, 0xCB, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30 };
|
||||
|
||||
static void register_win32_device_notification_event()
|
||||
{
|
||||
enum { WM_DPICHANGED_ = 0x02e0 };
|
||||
|
||||
wxWindow::MSWRegisterMessageHandler(WM_DEVICECHANGE, [](wxWindow *win, WXUINT /* nMsg */, WXWPARAM wParam, WXLPARAM lParam) {
|
||||
// Some messages are sent to top level windows by default, some messages are sent to only registered windows, and we explictely register on MainFrame only.
|
||||
auto main_frame = dynamic_cast<MainFrame*>(win);
|
||||
auto plater = (main_frame == nullptr) ? nullptr : main_frame->plater();
|
||||
if (plater == nullptr)
|
||||
// Maybe some other top level window like a dialog or maybe a pop-up menu?
|
||||
return true;
|
||||
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;
|
||||
switch (wParam) {
|
||||
case DBT_DEVICEARRIVAL:
|
||||
if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)
|
||||
plater->GetEventHandler()->AddPendingEvent(VolumeAttachedEvent(EVT_VOLUME_ATTACHED));
|
||||
else if (lpdb->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) {
|
||||
PDEV_BROADCAST_DEVICEINTERFACE lpdbi = (PDEV_BROADCAST_DEVICEINTERFACE)lpdb;
|
||||
// if (lpdbi->dbcc_classguid == GUID_DEVINTERFACE_VOLUME) {
|
||||
// printf("DBT_DEVICEARRIVAL %d - Media has arrived: %ws\n", msg_count, lpdbi->dbcc_name);
|
||||
if (lpdbi->dbcc_classguid == GUID_DEVINTERFACE_HID)
|
||||
plater->GetEventHandler()->AddPendingEvent(HIDDeviceAttachedEvent(EVT_HID_DEVICE_ATTACHED, boost::nowide::narrow(lpdbi->dbcc_name)));
|
||||
}
|
||||
break;
|
||||
case DBT_DEVICEREMOVECOMPLETE:
|
||||
if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)
|
||||
plater->GetEventHandler()->AddPendingEvent(VolumeDetachedEvent(EVT_VOLUME_DETACHED));
|
||||
else if (lpdb->dbch_devicetype == DBT_DEVTYP_DEVICEINTERFACE) {
|
||||
PDEV_BROADCAST_DEVICEINTERFACE lpdbi = (PDEV_BROADCAST_DEVICEINTERFACE)lpdb;
|
||||
// if (lpdbi->dbcc_classguid == GUID_DEVINTERFACE_VOLUME)
|
||||
// printf("DBT_DEVICEARRIVAL %d - Media was removed: %ws\n", msg_count, lpdbi->dbcc_name);
|
||||
if (lpdbi->dbcc_classguid == GUID_DEVINTERFACE_HID)
|
||||
plater->GetEventHandler()->AddPendingEvent(HIDDeviceDetachedEvent(EVT_HID_DEVICE_DETACHED, boost::nowide::narrow(lpdbi->dbcc_name)));
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
}
|
||||
#endif // WIN32
|
||||
|
||||
static void generic_exception_handle()
|
||||
{
|
||||
|
@ -248,7 +294,10 @@ bool GUI_App::on_init_inner()
|
|||
show_error(nullptr, ex.what());
|
||||
}
|
||||
|
||||
register_dpi_event();
|
||||
#ifdef WIN32
|
||||
register_win32_dpi_event();
|
||||
register_win32_device_notification_event();
|
||||
#endif // WIN32
|
||||
|
||||
// Let the libslic3r know the callback, which will translate messages on demand.
|
||||
Slic3r::I18N::set_translate_callback(libslic3r_translate_callback);
|
||||
|
|
|
@ -21,6 +21,12 @@
|
|||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
||||
#ifdef _WIN32
|
||||
wxDEFINE_EVENT(EVT_HID_DEVICE_ATTACHED, HIDDeviceAttachedEvent);
|
||||
wxDEFINE_EVENT(EVT_HID_DEVICE_DETACHED, HIDDeviceDetachedEvent);
|
||||
wxDEFINE_EVENT(EVT_VOLUME_ATTACHED, VolumeAttachedEvent);
|
||||
wxDEFINE_EVENT(EVT_VOLUME_DETACHED, VolumeDetachedEvent);
|
||||
#endif // _WIN32
|
||||
|
||||
wxTopLevelWindow* find_toplevel_parent(wxWindow *window)
|
||||
{
|
||||
|
|
|
@ -18,6 +18,8 @@
|
|||
#include <wx/debug.h>
|
||||
#include <wx/settings.h>
|
||||
|
||||
#include "Event.hpp"
|
||||
|
||||
class wxCheckBox;
|
||||
class wxTopLevelWindow;
|
||||
class wxRect;
|
||||
|
@ -26,6 +28,19 @@ class wxRect;
|
|||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
||||
#ifdef _WIN32
|
||||
// USB HID attach / detach events from Windows OS.
|
||||
using HIDDeviceAttachedEvent = Event<std::string>;
|
||||
using HIDDeviceDetachedEvent = Event<std::string>;
|
||||
wxDECLARE_EVENT(EVT_HID_DEVICE_ATTACHED, HIDDeviceAttachedEvent);
|
||||
wxDECLARE_EVENT(EVT_HID_DEVICE_DETACHED, HIDDeviceDetachedEvent);
|
||||
|
||||
// Disk aka Volume attach / detach events from Windows OS.
|
||||
using VolumeAttachedEvent = SimpleEvent;
|
||||
using VolumeDetachedEvent = SimpleEvent;
|
||||
wxDECLARE_EVENT(EVT_VOLUME_ATTACHED, VolumeAttachedEvent);
|
||||
wxDECLARE_EVENT(EVT_VOLUME_DETACHED, VolumeDetachedEvent);
|
||||
#endif /* _WIN32 */
|
||||
|
||||
wxTopLevelWindow* find_toplevel_parent(wxWindow *window);
|
||||
|
||||
|
|
|
@ -144,9 +144,7 @@ void KBShortcutsDialog::fill_shortcuts()
|
|||
{ ctrl + "J", L("Print host upload queue") },
|
||||
// View
|
||||
{ "0-6", L("Camera view") },
|
||||
#if ENABLE_SHOW_SCENE_LABELS
|
||||
{ "E", L("Show/Hide object/instance labels") },
|
||||
#endif // ENABLE_SHOW_SCENE_LABELS
|
||||
// Configuration
|
||||
{ ctrl + "P", L("Preferences") },
|
||||
// Help
|
||||
|
|
|
@ -31,6 +31,10 @@
|
|||
#include <fstream>
|
||||
#include "GUI_App.hpp"
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <dbt.h>
|
||||
#endif // _WIN32
|
||||
|
||||
namespace Slic3r {
|
||||
namespace GUI {
|
||||
|
||||
|
@ -104,6 +108,31 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_S
|
|||
update_title();
|
||||
|
||||
// declare events
|
||||
Bind(wxEVT_CREATE, [this](wxWindowCreateEvent& event) {
|
||||
|
||||
#ifdef _WIN32
|
||||
//static GUID GUID_DEVINTERFACE_USB_DEVICE = { 0xA5DCBF10, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED };
|
||||
//static GUID GUID_DEVINTERFACE_DISK = { 0x53f56307, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b };
|
||||
//static GUID GUID_DEVINTERFACE_VOLUME = { 0x71a27cdd, 0x812a, 0x11d0, 0xbe, 0xc7, 0x08, 0x00, 0x2b, 0xe2, 0x09, 0x2f };
|
||||
static GUID GUID_DEVINTERFACE_HID = { 0x4D1E55B2, 0xF16F, 0x11CF, 0x88, 0xCB, 0x00, 0x11, 0x11, 0x00, 0x00, 0x30 };
|
||||
|
||||
// Register USB HID (Human Interface Devices) notifications to trigger the 3DConnexion enumeration.
|
||||
DEV_BROADCAST_DEVICEINTERFACE NotificationFilter = { 0 };
|
||||
NotificationFilter.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
|
||||
NotificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
|
||||
NotificationFilter.dbcc_classguid = GUID_DEVINTERFACE_HID;
|
||||
m_hDeviceNotify = ::RegisterDeviceNotification(this->GetHWND(), &NotificationFilter, DEVICE_NOTIFY_WINDOW_HANDLE);
|
||||
|
||||
// or register for file handle change?
|
||||
// DEV_BROADCAST_HANDLE NotificationFilter = { 0 };
|
||||
// NotificationFilter.dbch_size = sizeof(DEV_BROADCAST_HANDLE);
|
||||
// NotificationFilter.dbch_devicetype = DBT_DEVTYP_HANDLE;
|
||||
#endif // _WIN32
|
||||
|
||||
// propagate event
|
||||
event.Skip();
|
||||
});
|
||||
|
||||
Bind(wxEVT_CLOSE_WINDOW, [this](wxCloseEvent& event) {
|
||||
if (event.CanVeto() && !wxGetApp().check_unsaved_changes()) {
|
||||
event.Veto();
|
||||
|
@ -131,6 +160,11 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_S
|
|||
// Called when closing the application and when switching the application language.
|
||||
void MainFrame::shutdown()
|
||||
{
|
||||
#ifdef _WIN32
|
||||
::UnregisterDeviceNotification(HDEVNOTIFY(m_hDeviceNotify));
|
||||
m_hDeviceNotify = nullptr;
|
||||
#endif // _WIN32
|
||||
|
||||
if (m_plater)
|
||||
m_plater->stop_jobs();
|
||||
|
||||
|
|
|
@ -141,6 +141,10 @@ public:
|
|||
wxNotebook* m_tabpanel { nullptr };
|
||||
wxProgressDialog* m_progress_dialog { nullptr };
|
||||
std::shared_ptr<ProgressStatusBar> m_statusbar;
|
||||
|
||||
#ifdef _WIN32
|
||||
void* m_hDeviceNotify { nullptr };
|
||||
#endif // _WIN32
|
||||
};
|
||||
|
||||
} // GUI
|
||||
|
|
|
@ -99,6 +99,25 @@ void Mouse3DController::State::append_button(unsigned int id, size_t /* input_qu
|
|||
}
|
||||
|
||||
#ifdef WIN32
|
||||
// Called by Win32 HID enumeration callback.
|
||||
void Mouse3DController::device_attached(const std::string &device)
|
||||
{
|
||||
int vid = 0;
|
||||
int pid = 0;
|
||||
if (sscanf(device.c_str(), "\\\\?\\HID#VID_%x&PID_%x&", &vid, &pid) == 2) {
|
||||
// BOOST_LOG_TRIVIAL(trace) << boost::format("Mouse3DController::device_attached(VID_%04xxPID_%04x)") % vid % pid;
|
||||
// BOOST_LOG_TRIVIAL(trace) << "Mouse3DController::device_attached: " << device;
|
||||
if (std::find(_3DCONNEXION_VENDORS.begin(), _3DCONNEXION_VENDORS.end(), vid) != _3DCONNEXION_VENDORS.end()) {
|
||||
// Signal the worker thread to wake up and enumerate HID devices, if not connected at the moment.
|
||||
// The message may come multiple times per each USB device. For example, some USB wireless dongles register as multiple HID sockets
|
||||
// for multiple devices to connect to.
|
||||
// Never mind, enumeration will be performed until connected.
|
||||
m_wakeup = true;
|
||||
m_stop_condition.notify_all();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Filter out mouse scroll events produced by the 3DConnexion driver.
|
||||
bool Mouse3DController::State::process_mouse_wheel()
|
||||
{
|
||||
|
@ -388,9 +407,13 @@ void Mouse3DController::disconnected()
|
|||
m_params_by_device[m_device_str] = m_params_ui;
|
||||
m_device_str.clear();
|
||||
m_connected = false;
|
||||
wxGetApp().plater()->get_camera().recover_from_free_camera();
|
||||
wxGetApp().plater()->set_current_canvas_as_dirty();
|
||||
wxWakeUpIdle();
|
||||
wxGetApp().plater()->CallAfter([]() {
|
||||
Plater *plater = wxGetApp().plater();
|
||||
if (plater != nullptr) {
|
||||
plater->get_camera().recover_from_free_camera();
|
||||
plater->set_current_canvas_as_dirty();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -486,6 +509,11 @@ void Mouse3DController::run()
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
// Enumerate once just after thread start.
|
||||
m_wakeup = true;
|
||||
#endif // _WIN32
|
||||
|
||||
for (;;) {
|
||||
{
|
||||
tbb::mutex::scoped_lock lock(m_params_ui_mutex);
|
||||
|
@ -518,7 +546,13 @@ bool Mouse3DController::connect_device()
|
|||
{
|
||||
// Wait for 2 seconds, but cancellable by m_stop.
|
||||
std::unique_lock<std::mutex> lock(m_stop_condition_mutex);
|
||||
m_stop_condition.wait_for(lock, std::chrono::seconds(2), [this]{ return this->m_stop; });
|
||||
#ifdef _WIN32
|
||||
// Wait indifinetely for the stop signal.
|
||||
m_stop_condition.wait(lock, [this]{ return m_stop || m_wakeup; });
|
||||
m_wakeup = false;
|
||||
#else
|
||||
m_stop_condition.wait_for(lock, std::chrono::seconds(2), [this]{ return m_stop; });
|
||||
#endif
|
||||
}
|
||||
|
||||
if (m_stop)
|
||||
|
@ -528,10 +562,14 @@ bool Mouse3DController::connect_device()
|
|||
hid_device_info* devices = hid_enumerate(0, 0);
|
||||
if (devices == nullptr)
|
||||
{
|
||||
BOOST_LOG_TRIVIAL(error) << "Unable to enumerate HID devices";
|
||||
BOOST_LOG_TRIVIAL(trace) << "Mouse3DController::connect_device() - no HID device enumerated.";
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
BOOST_LOG_TRIVIAL(trace) << "Mouse3DController::connect_device() - enumerating HID devices.";
|
||||
#endif // _WIN32
|
||||
|
||||
// Searches for 1st connected 3Dconnexion device
|
||||
struct DeviceData
|
||||
{
|
||||
|
@ -785,9 +823,17 @@ void Mouse3DController::disconnect_device()
|
|||
}
|
||||
m_device_str.clear();
|
||||
m_connected = false;
|
||||
wxGetApp().plater()->get_camera().recover_from_free_camera();
|
||||
wxGetApp().plater()->set_current_canvas_as_dirty();
|
||||
wxWakeUpIdle();
|
||||
#ifdef _WIN32
|
||||
// Enumerate once immediately after disconnect.
|
||||
m_wakeup = true;
|
||||
#endif // _WIN32
|
||||
wxGetApp().plater()->CallAfter([]() {
|
||||
Plater *plater = wxGetApp().plater();
|
||||
if (plater != nullptr) {
|
||||
plater->get_camera().recover_from_free_camera();
|
||||
plater->set_current_canvas_as_dirty();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -148,6 +148,9 @@ class Mouse3DController
|
|||
hid_device* m_device { nullptr };
|
||||
// Using m_stop_condition_mutex to synchronize m_stop.
|
||||
bool m_stop { false };
|
||||
#ifdef _WIN32
|
||||
std::atomic<bool> m_wakeup { false };
|
||||
#endif /* _WIN32 */
|
||||
// Mutex and condition variable for sleeping during the detection of 3DConnexion devices by polling while allowing
|
||||
// cancellation before the end of the polling interval.
|
||||
std::mutex m_stop_condition_mutex;
|
||||
|
@ -185,6 +188,9 @@ public:
|
|||
#endif // __APPLE__
|
||||
|
||||
#ifdef WIN32
|
||||
// Called by Win32 HID enumeration callback.
|
||||
void device_attached(const std::string &device);
|
||||
|
||||
// On Windows, the 3DConnexion driver sends out mouse wheel rotation events to an active application
|
||||
// if the application does not register at the driver. This is a workaround to ignore these superfluous
|
||||
// mouse wheel events.
|
||||
|
|
|
@ -1955,7 +1955,7 @@ struct Plater::priv
|
|||
GUI::show_error(this->q, msg);
|
||||
}
|
||||
}
|
||||
void export_gcode(fs::path output_path, PrintHostJob upload_job);
|
||||
void export_gcode(fs::path output_path, bool output_path_on_removable_media, PrintHostJob upload_job);
|
||||
void reload_from_disk();
|
||||
void reload_all_from_disk();
|
||||
void fix_through_netfabb(const int obj_idx, const int vol_idx = -1);
|
||||
|
@ -2214,17 +2214,34 @@ Plater::priv::priv(Plater *q, MainFrame *main_frame)
|
|||
// Load the 3DConnexion device database.
|
||||
mouse3d_controller.load_config(*wxGetApp().app_config);
|
||||
// Start the background thread to detect and connect to a HID device (Windows and Linux).
|
||||
// Connect to a 3DConnextion driver (OSX).
|
||||
// Connect to a 3DConnextion driver (OSX).
|
||||
mouse3d_controller.init();
|
||||
#ifdef _WIN32
|
||||
// Register an USB HID (Human Interface Device) attach event. evt contains Win32 path to the USB device containing VID, PID and other info.
|
||||
// This event wakes up the Mouse3DController's background thread to enumerate HID devices, if the VID of the callback event
|
||||
// is one of the 3D Mouse vendors (3DConnexion or Logitech).
|
||||
this->q->Bind(EVT_HID_DEVICE_ATTACHED, [this](HIDDeviceAttachedEvent &evt) {
|
||||
mouse3d_controller.device_attached(evt.data);
|
||||
});
|
||||
#endif /* _WIN32 */
|
||||
|
||||
this->q->Bind(EVT_REMOVABLE_DRIVE_EJECTED, [this](RemovableDriveEjectEvent &evt) {
|
||||
this->show_action_buttons(this->ready_to_slice);
|
||||
Slic3r::GUI::show_info(this->q, (boost::format(_utf8(L("Unmounting successful. The device %s(%s) can now be safely removed from the computer.")))
|
||||
% evt.data.name % evt.data.path).str());
|
||||
if (evt.data.second) {
|
||||
this->show_action_buttons(this->ready_to_slice);
|
||||
Slic3r::GUI::show_info(this->q, (boost::format(_utf8(L("Unmounting successful. The device %s(%s) can now be safely removed from the computer.")))
|
||||
% evt.data.first.name % evt.data.first.path).str());
|
||||
} else
|
||||
Slic3r::GUI::show_info(this->q, (boost::format(_utf8(L("Ejecting of device %s(%s) has failed.")))
|
||||
% evt.data.first.name % evt.data.first.path).str());
|
||||
});
|
||||
this->q->Bind(EVT_REMOVABLE_DRIVES_CHANGED, [this](RemovableDrivesChangedEvent &) { this->show_action_buttons(this->ready_to_slice); });
|
||||
// Start the background thread and register this window as a target for update events.
|
||||
wxGetApp().removable_drive_manager()->init(this->q);
|
||||
#ifdef _WIN32
|
||||
// Trigger enumeration of removable media on Win32 notification.
|
||||
this->q->Bind(EVT_VOLUME_ATTACHED, [this](VolumeAttachedEvent &evt) { wxGetApp().removable_drive_manager()->volumes_changed(); });
|
||||
this->q->Bind(EVT_VOLUME_DETACHED, [this](VolumeDetachedEvent &evt) { wxGetApp().removable_drive_manager()->volumes_changed(); });
|
||||
#endif /* _WIN32 */
|
||||
|
||||
// Initialize the Undo / Redo stack with a first snapshot.
|
||||
this->take_snapshot(_(L("New Project")));
|
||||
|
@ -3242,7 +3259,7 @@ bool Plater::priv::restart_background_process(unsigned int state)
|
|||
return false;
|
||||
}
|
||||
|
||||
void Plater::priv::export_gcode(fs::path output_path, PrintHostJob upload_job)
|
||||
void Plater::priv::export_gcode(fs::path output_path, bool output_path_on_removable_media, PrintHostJob upload_job)
|
||||
{
|
||||
wxCHECK_RET(!(output_path.empty() && upload_job.empty()), "export_gcode: output_path and upload_job empty");
|
||||
|
||||
|
@ -3263,7 +3280,7 @@ void Plater::priv::export_gcode(fs::path output_path, PrintHostJob upload_job)
|
|||
return;
|
||||
|
||||
if (! output_path.empty()) {
|
||||
background_process.schedule_export(output_path.string());
|
||||
background_process.schedule_export(output_path.string(), output_path_on_removable_media);
|
||||
} else {
|
||||
background_process.schedule_upload(std::move(upload_job));
|
||||
}
|
||||
|
@ -3745,7 +3762,12 @@ void Plater::priv::on_process_completed(wxCommandEvent &evt)
|
|||
wxString message = evt.GetString();
|
||||
if (message.IsEmpty())
|
||||
message = _(L("Export failed"));
|
||||
show_error(q, message);
|
||||
if (q->m_tracking_popup_menu)
|
||||
// We don't want to pop-up a message box when tracking a pop-up menu.
|
||||
// We postpone the error message instead.
|
||||
q->m_tracking_popup_menu_error_message = message;
|
||||
else
|
||||
show_error(q, message);
|
||||
this->statusbar()->set_status_text(message);
|
||||
}
|
||||
if (canceled)
|
||||
|
@ -4927,8 +4949,8 @@ void Plater::export_gcode(bool prefer_removable)
|
|||
}
|
||||
|
||||
if (! output_path.empty()) {
|
||||
p->export_gcode(output_path, PrintHostJob());
|
||||
bool path_on_removable_media = removable_drive_manager.set_and_verify_last_save_path(output_path.string());
|
||||
p->export_gcode(output_path, path_on_removable_media, PrintHostJob());
|
||||
// Storing a path to AppConfig either as path to removable media or a path to internal media.
|
||||
// is_path_on_removable_drive() is called with the "true" parameter to update its internal database as the user may have shuffled the external drives
|
||||
// while the dialog was open.
|
||||
|
@ -5251,7 +5273,7 @@ void Plater::send_gcode()
|
|||
upload_job.upload_data.upload_path = dlg.filename();
|
||||
upload_job.upload_data.start_print = dlg.start_print();
|
||||
|
||||
p->export_gcode(fs::path(), std::move(upload_job));
|
||||
p->export_gcode(fs::path(), false, std::move(upload_job));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -5627,7 +5649,7 @@ void Plater::schedule_background_process(bool schedule/* = true*/)
|
|||
this->p->suppressed_backround_processing_update = false;
|
||||
}
|
||||
|
||||
bool Plater::is_background_process_running() const
|
||||
bool Plater::is_background_process_update_scheduled() const
|
||||
{
|
||||
return this->p->background_process_timer.IsRunning();
|
||||
}
|
||||
|
@ -5749,15 +5771,34 @@ const UndoRedo::Stack& Plater::undo_redo_stack_main() const { return p->undo_red
|
|||
void Plater::enter_gizmos_stack() { p->enter_gizmos_stack(); }
|
||||
void Plater::leave_gizmos_stack() { p->leave_gizmos_stack(); }
|
||||
|
||||
SuppressBackgroundProcessingUpdate::SuppressBackgroundProcessingUpdate() :
|
||||
m_was_running(wxGetApp().plater()->is_background_process_running())
|
||||
// Wrapper around wxWindow::PopupMenu to suppress error messages popping out while tracking the popup menu.
|
||||
bool Plater::PopupMenu(wxMenu *menu, const wxPoint& pos)
|
||||
{
|
||||
wxGetApp().plater()->suppress_background_process(m_was_running);
|
||||
// Don't want to wake up and trigger reslicing while tracking the pop-up menu.
|
||||
SuppressBackgroundProcessingUpdate sbpu;
|
||||
// When tracking a pop-up menu, postpone error messages from the slicing result.
|
||||
m_tracking_popup_menu = true;
|
||||
bool out = this->wxPanel::PopupMenu(menu, pos);
|
||||
m_tracking_popup_menu = false;
|
||||
if (! m_tracking_popup_menu_error_message.empty()) {
|
||||
// Don't know whether the CallAfter is necessary, but it should not hurt.
|
||||
// The menus likely sends out some commands, so we may be safer if the dialog is shown after the menu command is processed.
|
||||
wxString message = std::move(m_tracking_popup_menu_error_message);
|
||||
wxTheApp->CallAfter([message, this]() { show_error(this, message); });
|
||||
m_tracking_popup_menu_error_message.clear();
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
SuppressBackgroundProcessingUpdate::SuppressBackgroundProcessingUpdate() :
|
||||
m_was_scheduled(wxGetApp().plater()->is_background_process_update_scheduled())
|
||||
{
|
||||
wxGetApp().plater()->suppress_background_process(m_was_scheduled);
|
||||
}
|
||||
|
||||
SuppressBackgroundProcessingUpdate::~SuppressBackgroundProcessingUpdate()
|
||||
{
|
||||
wxGetApp().plater()->schedule_background_process(m_was_running);
|
||||
wxGetApp().plater()->schedule_background_process(m_was_scheduled);
|
||||
}
|
||||
|
||||
}} // namespace Slic3r::GUI
|
||||
|
|
|
@ -208,7 +208,7 @@ public:
|
|||
void changed_object(int obj_idx);
|
||||
void changed_objects(const std::vector<size_t>& object_idxs);
|
||||
void schedule_background_process(bool schedule = true);
|
||||
bool is_background_process_running() const;
|
||||
bool is_background_process_update_scheduled() const;
|
||||
void suppress_background_process(const bool stop_background_process) ;
|
||||
void fix_through_netfabb(const int obj_idx, const int vol_idx = -1);
|
||||
void send_gcode();
|
||||
|
@ -319,10 +319,20 @@ public:
|
|||
Plater *m_plater;
|
||||
};
|
||||
|
||||
// Wrapper around wxWindow::PopupMenu to suppress error messages popping out while tracking the popup menu.
|
||||
bool PopupMenu(wxMenu *menu, const wxPoint& pos = wxDefaultPosition);
|
||||
bool PopupMenu(wxMenu *menu, int x, int y) { return this->PopupMenu(menu, wxPoint(x, y)); }
|
||||
|
||||
private:
|
||||
struct priv;
|
||||
std::unique_ptr<priv> p;
|
||||
|
||||
// Set true during PopupMenu() tracking to suppress immediate error message boxes.
|
||||
// The error messages are collected to m_tracking_popup_menu_error_message instead and these error messages
|
||||
// are shown after the pop-up dialog closes.
|
||||
bool m_tracking_popup_menu = false;
|
||||
wxString m_tracking_popup_menu_error_message;
|
||||
|
||||
void suppress_snapshots();
|
||||
void allow_snapshots();
|
||||
|
||||
|
@ -335,7 +345,7 @@ public:
|
|||
SuppressBackgroundProcessingUpdate();
|
||||
~SuppressBackgroundProcessingUpdate();
|
||||
private:
|
||||
bool m_was_running;
|
||||
bool m_was_scheduled;
|
||||
};
|
||||
|
||||
}}
|
||||
|
|
|
@ -56,7 +56,7 @@ std::vector<DriveData> RemovableDriveManager::search_for_removable_drives() cons
|
|||
volume_name.erase(volume_name.begin() + wcslen(volume_name.c_str()), volume_name.end());
|
||||
if (! file_system_name.empty()) {
|
||||
ULARGE_INTEGER free_space;
|
||||
::GetDiskFreeSpaceExA(path.c_str(), &free_space, nullptr, nullptr);
|
||||
::GetDiskFreeSpaceExW(wpath.c_str(), &free_space, nullptr, nullptr);
|
||||
if (free_space.QuadPart > 0) {
|
||||
path += "\\";
|
||||
current_drives.emplace_back(DriveData{ boost::nowide::narrow(volume_name), path });
|
||||
|
@ -86,9 +86,12 @@ void RemovableDriveManager::eject_drive()
|
|||
// get handle to device
|
||||
std::string mpath = "\\\\.\\" + m_last_save_path;
|
||||
mpath = mpath.substr(0, mpath.size() - 1);
|
||||
HANDLE handle = CreateFileA(mpath.c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr);
|
||||
HANDLE handle = CreateFileW(boost::nowide::widen(mpath).c_str(), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr);
|
||||
if (handle == INVALID_HANDLE_VALUE) {
|
||||
std::cerr << "Ejecting " << mpath << " failed " << GetLastError() << " \n";
|
||||
assert(m_callback_evt_handler);
|
||||
if (m_callback_evt_handler)
|
||||
wxPostEvent(m_callback_evt_handler, RemovableDriveEjectEvent(EVT_REMOVABLE_DRIVE_EJECTED, std::pair<DriveData, bool>(*it_drive_data, false)));
|
||||
return;
|
||||
}
|
||||
DWORD deviceControlRetVal(0);
|
||||
|
@ -101,12 +104,15 @@ void RemovableDriveManager::eject_drive()
|
|||
if (error == 0) {
|
||||
CloseHandle(handle);
|
||||
BOOST_LOG_TRIVIAL(error) << "Ejecting " << mpath << " failed " << deviceControlRetVal << " " << GetLastError() << " \n";
|
||||
assert(m_callback_evt_handler);
|
||||
if (m_callback_evt_handler)
|
||||
wxPostEvent(m_callback_evt_handler, RemovableDriveEjectEvent(EVT_REMOVABLE_DRIVE_EJECTED, std::pair<DriveData, bool>(*it_drive_data, false)));
|
||||
return;
|
||||
}
|
||||
CloseHandle(handle);
|
||||
assert(m_callback_evt_handler);
|
||||
if (m_callback_evt_handler)
|
||||
wxPostEvent(m_callback_evt_handler, RemovableDriveEjectEvent(EVT_REMOVABLE_DRIVE_EJECTED, std::move(*it_drive_data)));
|
||||
wxPostEvent(m_callback_evt_handler, RemovableDriveEjectEvent(EVT_REMOVABLE_DRIVE_EJECTED, std::pair< DriveData, bool >(std::move(*it_drive_data), true)));
|
||||
m_current_drives.erase(it_drive_data);
|
||||
}
|
||||
}
|
||||
|
@ -122,7 +128,7 @@ std::string RemovableDriveManager::get_removable_drive_path(const std::string &p
|
|||
return std::string();
|
||||
std::size_t found = path.find_last_of("\\");
|
||||
std::string new_path = path.substr(0, found);
|
||||
int letter = PathGetDriveNumberA(new_path.c_str());
|
||||
int letter = PathGetDriveNumberW(boost::nowide::widen(new_path).c_str());
|
||||
for (const DriveData &drive_data : m_current_drives) {
|
||||
char drive = drive_data.path[0];
|
||||
if (drive == 'A' + letter)
|
||||
|
@ -136,7 +142,7 @@ std::string RemovableDriveManager::get_removable_drive_from_path(const std::stri
|
|||
tbb::mutex::scoped_lock lock(m_drives_mutex);
|
||||
std::size_t found = path.find_last_of("\\");
|
||||
std::string new_path = path.substr(0, found);
|
||||
int letter = PathGetDriveNumberA(new_path.c_str());
|
||||
int letter = PathGetDriveNumberW(boost::nowide::widen(new_path).c_str());
|
||||
for (const DriveData &drive_data : m_current_drives) {
|
||||
assert(! drive_data.path.empty());
|
||||
if (drive_data.path.front() == 'A' + letter)
|
||||
|
@ -145,93 +151,16 @@ std::string RemovableDriveManager::get_removable_drive_from_path(const std::stri
|
|||
return std::string();
|
||||
}
|
||||
|
||||
#if 0
|
||||
// currently not used, left for possible future use
|
||||
INT_PTR WINAPI WinProcCallback(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
// Called by Win32 Volume arrived / detached callback.
|
||||
void RemovableDriveManager::volumes_changed()
|
||||
{
|
||||
// here we need to catch messeges about device removal
|
||||
// problem is that when ejecting usb (how is it implemented above) there is no messege dispached. Only after physical removal of the device.
|
||||
//uncomment register_window() in init() to register and comment update() in GUI_App.cpp (only for windows!) to stop recieving periodical updates
|
||||
|
||||
LRESULT lRet = 1;
|
||||
static HDEVNOTIFY hDeviceNotify;
|
||||
static constexpr GUID WceusbshGUID = { 0x25dbce51, 0x6c8f, 0x4a72, 0x8a,0x6d,0xb5,0x4c,0x2b,0x4f,0xc8,0x35 };
|
||||
|
||||
switch (message)
|
||||
{
|
||||
case WM_CREATE:
|
||||
DEV_BROADCAST_DEVICEINTERFACE NotificationFilter;
|
||||
|
||||
ZeroMemory(&NotificationFilter, sizeof(NotificationFilter));
|
||||
NotificationFilter.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
|
||||
NotificationFilter.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
|
||||
NotificationFilter.dbcc_classguid = WceusbshGUID;
|
||||
|
||||
hDeviceNotify = RegisterDeviceNotification(hWnd, &NotificationFilter, DEVICE_NOTIFY_WINDOW_HANDLE);
|
||||
break;
|
||||
|
||||
case WM_DEVICECHANGE:
|
||||
{
|
||||
// here is the important
|
||||
if(wParam == DBT_DEVICEREMOVECOMPLETE)
|
||||
{
|
||||
RemovableDriveManager::get_instance().update(0, true);
|
||||
}
|
||||
if (m_initialized) {
|
||||
// Signal the worker thread to wake up and enumerate removable drives.
|
||||
m_wakeup = true;
|
||||
m_thread_stop_condition.notify_all();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
// Send all other messages on to the default windows handler.
|
||||
lRet = DefWindowProc(hWnd, message, wParam, lParam);
|
||||
break;
|
||||
}
|
||||
return lRet;
|
||||
|
||||
}
|
||||
|
||||
void RemovableDriveManager::register_window()
|
||||
{
|
||||
//creates new unvisible window that is recieving callbacks from system
|
||||
// structure to register
|
||||
// currently not used, left for possible future use
|
||||
WNDCLASSEX wndClass;
|
||||
wndClass.cbSize = sizeof(WNDCLASSEX);
|
||||
wndClass.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
|
||||
wndClass.hInstance = reinterpret_cast<HINSTANCE>(GetModuleHandle(0));
|
||||
wndClass.lpfnWndProc = reinterpret_cast<WNDPROC>(WinProcCallback);//this is callback
|
||||
wndClass.cbClsExtra = 0;
|
||||
wndClass.cbWndExtra = 0;
|
||||
wndClass.hIcon = LoadIcon(0, IDI_APPLICATION);
|
||||
wndClass.hbrBackground = CreateSolidBrush(RGB(192, 192, 192));
|
||||
wndClass.hCursor = LoadCursor(0, IDC_ARROW);
|
||||
wndClass.lpszClassName = L"PrusaSlicer_aux_class";
|
||||
wndClass.lpszMenuName = NULL;
|
||||
wndClass.hIconSm = wndClass.hIcon;
|
||||
if(!RegisterClassEx(&wndClass))
|
||||
{
|
||||
DWORD err = GetLastError();
|
||||
return;
|
||||
}
|
||||
|
||||
HWND hWnd = CreateWindowEx(
|
||||
WS_EX_NOACTIVATE,
|
||||
L"PrusaSlicer_aux_class",
|
||||
L"PrusaSlicer_aux_wnd",
|
||||
WS_DISABLED, // style
|
||||
CW_USEDEFAULT, 0,
|
||||
640, 480,
|
||||
NULL, NULL,
|
||||
GetModuleHandle(NULL),
|
||||
NULL);
|
||||
if(hWnd == NULL)
|
||||
{
|
||||
DWORD err = GetLastError();
|
||||
}
|
||||
//ShowWindow(hWnd, SW_SHOWNORMAL);
|
||||
UpdateWindow(hWnd);
|
||||
}
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
namespace search_for_drives_internal
|
||||
|
@ -358,16 +287,18 @@ void RemovableDriveManager::eject_drive()
|
|||
// wait for command to finnish (blocks ui thread)
|
||||
child.wait();
|
||||
int err = child.exit_code();
|
||||
if(err)
|
||||
{
|
||||
if (err) {
|
||||
BOOST_LOG_TRIVIAL(error) << "Ejecting failed";
|
||||
assert(m_callback_evt_handler);
|
||||
if (m_callback_evt_handler)
|
||||
wxPostEvent(m_callback_evt_handler, RemovableDriveEjectEvent(EVT_REMOVABLE_DRIVE_EJECTED, std::pair<DriveData, bool>(*it_drive_data, false)));
|
||||
return;
|
||||
}
|
||||
BOOST_LOG_TRIVIAL(info) << "Ejecting finished";
|
||||
|
||||
assert(m_callback_evt_handler);
|
||||
if (m_callback_evt_handler)
|
||||
wxPostEvent(m_callback_evt_handler, RemovableDriveEjectEvent(EVT_REMOVABLE_DRIVE_EJECTED, std::move(*it_drive_data)));
|
||||
wxPostEvent(m_callback_evt_handler, RemovableDriveEjectEvent(EVT_REMOVABLE_DRIVE_EJECTED, std::pair<DriveData, bool>(std::move(*it_drive_data), true)));
|
||||
m_current_drives.erase(it_drive_data);
|
||||
}
|
||||
}
|
||||
|
@ -416,9 +347,7 @@ void RemovableDriveManager::init(wxEvtHandler *callback_evt_handler)
|
|||
m_initialized = true;
|
||||
m_callback_evt_handler = callback_evt_handler;
|
||||
|
||||
#if _WIN32
|
||||
//this->register_window_msw();
|
||||
#elif __APPLE__
|
||||
#if __APPLE__
|
||||
this->register_window_osx();
|
||||
#endif
|
||||
|
||||
|
@ -432,6 +361,10 @@ void RemovableDriveManager::init(wxEvtHandler *callback_evt_handler)
|
|||
|
||||
void RemovableDriveManager::shutdown()
|
||||
{
|
||||
#if __APPLE__
|
||||
this->unregister_window_osx();
|
||||
#endif
|
||||
|
||||
#ifndef REMOVABLE_DRIVE_MANAGER_OS_CALLBACKS
|
||||
if (m_thread.joinable()) {
|
||||
// Stop the worker thread, if running.
|
||||
|
@ -447,12 +380,6 @@ void RemovableDriveManager::shutdown()
|
|||
}
|
||||
#endif // REMOVABLE_DRIVE_MANAGER_OS_CALLBACKS
|
||||
|
||||
#if _WIN32
|
||||
//this->unregister_window_msw();
|
||||
#elif __APPLE__
|
||||
this->unregister_window_osx();
|
||||
#endif
|
||||
|
||||
m_initialized = false;
|
||||
m_callback_evt_handler = nullptr;
|
||||
}
|
||||
|
@ -469,9 +396,6 @@ bool RemovableDriveManager::set_and_verify_last_save_path(const std::string &pat
|
|||
|
||||
RemovableDriveManager::RemovableDrivesStatus RemovableDriveManager::status()
|
||||
{
|
||||
#ifndef REMOVABLE_DRIVE_MANAGER_OS_CALLBACKS
|
||||
this->update();
|
||||
#endif // REMOVABLE_DRIVE_MANAGER_OS_CALLBACKS
|
||||
|
||||
RemovableDriveManager::RemovableDrivesStatus out;
|
||||
{
|
||||
|
@ -488,6 +412,10 @@ RemovableDriveManager::RemovableDrivesStatus RemovableDriveManager::status()
|
|||
void RemovableDriveManager::update()
|
||||
{
|
||||
tbb::mutex::scoped_lock inside_update_lock;
|
||||
#ifdef _WIN32
|
||||
// All wake up calls up to now are now consumed when the drive enumeration starts.
|
||||
m_wakeup = false;
|
||||
#endif // _WIN32
|
||||
if (inside_update_lock.try_acquire(m_inside_update_mutex)) {
|
||||
// Got the lock without waiting. That means, the update was not running.
|
||||
// Run the update.
|
||||
|
@ -511,12 +439,23 @@ void RemovableDriveManager::update()
|
|||
#ifndef REMOVABLE_DRIVE_MANAGER_OS_CALLBACKS
|
||||
void RemovableDriveManager::thread_proc()
|
||||
{
|
||||
// Signal the worker thread to update initially.
|
||||
#ifdef _WIN32
|
||||
m_wakeup = true;
|
||||
#endif // _WIN32
|
||||
|
||||
for (;;) {
|
||||
// Wait for 2 seconds before running the disk enumeration.
|
||||
// Cancellable.
|
||||
{
|
||||
std::unique_lock<std::mutex> lck(m_thread_stop_mutex);
|
||||
#ifdef _WIN32
|
||||
// Wait 30 seconds for the stop signal, wake up time to time to remove those devices that the user ejected in file explorer
|
||||
// or another application (for example in Cura). This is a workaround, as Windows does not send an event on software eject of a drive.
|
||||
m_thread_stop_condition.wait_for(lck, std::chrono::seconds(30), [this]{ return m_stop || m_wakeup; });
|
||||
#else
|
||||
m_thread_stop_condition.wait_for(lck, std::chrono::seconds(2), [this]{ return m_stop; });
|
||||
#endif
|
||||
}
|
||||
if (m_stop)
|
||||
// Stop the worker thread.
|
||||
|
|
|
@ -32,7 +32,7 @@ inline bool operator< (const DriveData &lhs, const DriveData &rhs) { return lhs.
|
|||
inline bool operator> (const DriveData &lhs, const DriveData &rhs) { return lhs.path > rhs.path; }
|
||||
inline bool operator==(const DriveData &lhs, const DriveData &rhs) { return lhs.path == rhs.path; }
|
||||
|
||||
using RemovableDriveEjectEvent = Event<DriveData>;
|
||||
using RemovableDriveEjectEvent = Event<std::pair<DriveData, bool>>;
|
||||
wxDECLARE_EVENT(EVT_REMOVABLE_DRIVE_EJECTED, RemovableDriveEjectEvent);
|
||||
|
||||
using RemovableDrivesChangedEvent = SimpleEvent;
|
||||
|
@ -69,6 +69,8 @@ public:
|
|||
// On Windows, the function does not block, and the eject is detected in the background thread.
|
||||
void eject_drive();
|
||||
|
||||
// Status is used to retrieve info for showing UI buttons.
|
||||
// Status is called every time when change of UI buttons is possible therefore should not perform update.
|
||||
struct RemovableDrivesStatus {
|
||||
bool has_removable_drives { false };
|
||||
bool has_eject { false };
|
||||
|
@ -82,6 +84,11 @@ public:
|
|||
// It would be better to make this method private and friend to RemovableDriveManagerMM, but RemovableDriveManagerMM is an ObjectiveC class.
|
||||
void update();
|
||||
|
||||
#ifdef _WIN32
|
||||
// Called by Win32 Volume arrived / detached callback.
|
||||
void volumes_changed();
|
||||
#endif // _WIN32
|
||||
|
||||
private:
|
||||
bool m_initialized { false };
|
||||
wxEvtHandler* m_callback_evt_handler { nullptr };
|
||||
|
@ -93,6 +100,9 @@ private:
|
|||
std::condition_variable m_thread_stop_condition;
|
||||
mutable std::mutex m_thread_stop_mutex;
|
||||
bool m_stop { false };
|
||||
#ifdef _WIN32
|
||||
std::atomic<bool> m_wakeup { false };
|
||||
#endif /* _WIN32 */
|
||||
#endif // REMOVABLE_DRIVE_MANAGER_OS_CALLBACKS
|
||||
|
||||
// Called from update() to enumerate removable drives.
|
||||
|
@ -112,10 +122,7 @@ private:
|
|||
// Set with set_and_verify_last_save_path() to a removable drive path to be ejected.
|
||||
std::string m_last_save_path;
|
||||
|
||||
#if _WIN32
|
||||
//registers for notifications by creating invisible window
|
||||
//void register_window_msw();
|
||||
#elif __APPLE__
|
||||
#if __APPLE__
|
||||
void register_window_osx();
|
||||
void unregister_window_osx();
|
||||
void list_devices(std::vector<DriveData> &out) const;
|
||||
|
|