From ad82da4cba7a40521875f6e985547b89a3f34f96 Mon Sep 17 00:00:00 2001 From: NilsRo Date: Sun, 27 Mar 2022 13:38:21 +0200 Subject: [PATCH 001/185] Update anycubic_i3_mega_s.def.json Added nozzle size --- resources/definitions/anycubic_i3_mega_s.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index bf14aed04c..b30b152fbc 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -29,7 +29,7 @@ "machine_center_is_zero": { "default_value": false }, "gantry_height": { "value": "0" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X120 F4000 ; Quickly wipe away from the filament line`" }, + "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X120 F4000 ; Quickly wipe away from the filament line`" }, "machine_end_gcode": { "default_value": "M104 S0 ; Extruder off \nM140 S0 ; Heatbed off \nM107 ; Fan off \nG91 ; relative positioning \nG1 E-5 F300 ; retract a little \nG1 Z+10 E-5 ; X-20 Y-20 F{travel_xy_speed} ; lift print head \nG28 X0 Y0 ; homing \nG1 Y180 F2000 ; reset feedrate \nM84 ; disable stepper motors \nG90 ; absolute positioning \nM300 S440 P200 ; Make Print Completed Tones \nM300 S660 P250 ; beep \nM300 S880 P300 ; beep" }, "machine_max_acceleration_x": { "value": 3000 }, From 62cbc5abe2f299ddcc137a5281af94c1d4683c2e Mon Sep 17 00:00:00 2001 From: NilsRo Date: Wed, 30 Mar 2022 07:43:40 +0200 Subject: [PATCH 002/185] Update anycubic_i3_mega_s.def.json dynamic wall_thickness by nozzle diameter --- resources/definitions/anycubic_i3_mega_s.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index b30b152fbc..d9e53e0afc 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -139,6 +139,6 @@ "minimum_support_area": { "value": 2 }, "minimum_interface_area": { "value": 10 }, "top_bottom_thickness": { "value": "layer_height_0 + layer_height * math.floor(1.2 / layer_height)" }, - "wall_thickness": { "value": "line_width * 3" } + "wall_thickness": { "value": "line_width * 3 if line_width < 0.6 else line_width * 2" } } } From 558f7a963d81a36434bca63a803b16189f303916 Mon Sep 17 00:00:00 2001 From: NilsRo Date: Wed, 30 Mar 2022 07:50:05 +0200 Subject: [PATCH 003/185] Update anycubic_i3_mega_s.def.json Dynamic wall thickness by nozzle diameter --- resources/definitions/anycubic_i3_mega_s.def.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index d9e53e0afc..0f33f95c40 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -51,6 +51,9 @@ "material_final_print_temperature": { "value": "material_print_temperature" }, "material_flow": { "value": 100 }, + "top_bottom_thickness": { "value": "layer_height_0 + layer_height * math.floor(1.2 / layer_height)" }, + "wall_thickness": { "value": "line_width * 3 if line_width < 0.6 else line_width * 2" }, + "acceleration_print": { "value": 1500 }, "acceleration_enabled": { "value": false }, "acceleration_travel": { "value": 3000 }, @@ -137,8 +140,6 @@ "support_interface_pattern": { "value": "'grid'" }, "support_interface_skip_height": { "value": 0.2 }, "minimum_support_area": { "value": 2 }, - "minimum_interface_area": { "value": 10 }, - "top_bottom_thickness": { "value": "layer_height_0 + layer_height * math.floor(1.2 / layer_height)" }, - "wall_thickness": { "value": "line_width * 3 if line_width < 0.6 else line_width * 2" } + "minimum_interface_area": { "value": 10 } } } From df3e93218af9fa2038d1edfd1d31c4459f426314 Mon Sep 17 00:00:00 2001 From: NilsRo Date: Sun, 3 Apr 2022 17:10:24 +0200 Subject: [PATCH 004/185] Update anycubic_i3_mega_s.def.json Added filment costs to standard --- resources/definitions/anycubic_i3_mega_s.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index 0f33f95c40..db9ccf7072 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -29,7 +29,7 @@ "machine_center_is_zero": { "default_value": false }, "gantry_height": { "value": "0" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X120 F4000 ; Quickly wipe away from the filament line`" }, + "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:filament_cost;{filament_cost}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X120 F4000 ; Quickly wipe away from the filament line`" }, "machine_end_gcode": { "default_value": "M104 S0 ; Extruder off \nM140 S0 ; Heatbed off \nM107 ; Fan off \nG91 ; relative positioning \nG1 E-5 F300 ; retract a little \nG1 Z+10 E-5 ; X-20 Y-20 F{travel_xy_speed} ; lift print head \nG28 X0 Y0 ; homing \nG1 Y180 F2000 ; reset feedrate \nM84 ; disable stepper motors \nG90 ; absolute positioning \nM300 S440 P200 ; Make Print Completed Tones \nM300 S660 P250 ; beep \nM300 S880 P300 ; beep" }, "machine_max_acceleration_x": { "value": 3000 }, From 836a7cc2d1b2bbe6d1b0176ed65983d608b21ee7 Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Wed, 20 Apr 2022 16:02:28 -0400 Subject: [PATCH 005/185] Add Anneal After Print PostProcessingPlugin This new plugin generates annealing gcode with the following features: - Bed and chamber heating options - Provides progress bar and time remaining feedback - Beep on annealing start - Gradual annealing cooldown to desired temperature --- .../scripts/AnnealAfterPrint.py | 160 ++++++++++++++++++ 1 file changed, 160 insertions(+) create mode 100644 plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py diff --git a/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py b/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py new file mode 100644 index 0000000000..a9cffd9e88 --- /dev/null +++ b/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py @@ -0,0 +1,160 @@ +# Copyright (c) 2021 Anson Liu +# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. + +from ..Script import Script + +class AnnealAfterPrint(Script): + """Adds timed annealing GCODE after objects finish printing. + + Bed annealing works best with a glass bed and a plastic container placed on top of the object during annealing. + """ + + def getSettingDataString(self): + return """{ + "name": "Anneal After Print", + "key": "AnnealAfterPrint", + "metadata": {}, + "version": 2, + "settings": + { + "heatingElement": + { + "label": "Heating Element", + "description": "Printer heating element to use for annealing.", + "type": "enum", + "options": + { + "bed": "Bed", + "chamber": "Chamber", + "all": "Bed and Chamber" + }, + "default_value": "bed" + }, + "annealBedTemp": + { + "label": "Bed Temperature", + "description": "Bed temperature annealing. Recommended bed temperature is greater of build plate printing or vendor specified annealing temperature for material. E.g. PC 90-110 C, PLA 60-90 C", + "unit": "C", + "type": "float", + "default_value": 0, + "minimum_value": 0, + "enabled": "heatingElement == \\\"bed\\\" or heatingElement == \\\"all\\\"" + }, + "annealChamberTemp": + { + "label": "Chamber Temperature", + "description": "Chamber temperature for annealing.", + "unit": "C", + "type": "float", + "default_value": 0, + "minimum_value": 0, + "enabled": "heatingElement == \\\"chamber\\\" or heatingElement == \\\"all\\\"" + }, + "annealMinutes": + { + "label": "Annealing Target Temperature Duration", + "description": "Duration in minutes to anneal at target temperature. After duration ends gradually cool down to End Cooling Temperature.", + "unit": "min", + "type": "int", + "default_value": 120, + "minimum_value": 0 + }, + "reminderBeep": + { + "label": "Beep on annealing start", + "description": "", + "type": "bool", + "default_value": false + }, + "endCoolingTemp": + { + "label": "End Cooling Temperature", + "description": "Temperature to end gradual cooling at. After annealing at target temperature for specified duration temperature decreases by 1 degree after 1 minute at each step.", + "unit": "C", + "type": "float", + "default_value": 50, + "minimum_value": 0 + } + } + }""" + + def generateAnnealCode(self, annealBedTemp, annealChamberTemp, annealMinutes, initialBeep, endCoolingTemp): + anneal_code = ';Generated Annealing GCODE by Anson Liu' + + if initialBeep: + anneal_code += '\nM300 ;play beep for plastic container placement reminder' + + anneal_code += '\nM117 ' + if annealBedTemp: + anneal_code += 'Place plastic container over objects on bed now! ' + anneal_code += 'Waiting until annealing temp reached...' + anneal_code += '\nM73 P00 ;reset progress bar to 0' + + if annealBedTemp: + anneal_code += '\nM190 R{} ;wait for buildplate to reach temp in C even if cooling'.format(annealBedTemp) + if annealChamberTemp: + anneal_code += '\nM191 R{} ;wait for chamber to reach temp in C even if cooling'.format(annealChamberTemp) + + anneal_code += '\nM117 ' + if annealBedTemp: + anneal_code += 'Keep plastic container over objects. ' + anneal_code += 'Annealing...' + anneal_code += '\nM73 P00' # reset progress bar to 0 + + def generateDwellAndProgressCode(minutes): # Update progress bar and time every minute + dp_code = 'M73 P0 R{}'.format(minutes) + for x in range(1, minutes+1): + dwellWaitSeconds = 60 + dp_code += '\nG4 S{}'.format(dwellWaitSeconds) + progress = round(x/minutes * 100, 2) + remainingMinutes = minutes - x + dp_code += '\nM73 P{} R{}'.format(progress, remainingMinutes) + + return dp_code + + anneal_code += '\n' + generateDwellAndProgressCode(int(annealMinutes)) + + anneal_code += '\nM117 Annealing complete. Gradually lowering bed temperature...' + + for x in reversed(range(endCoolingTemp, max(annealBedTemp, annealChamberTemp))): + if annealBedTemp and annealBedTemp > x: + anneal_code += '\nM190 S{}'.format(x) # Wait for buildplate only if heating + if annealChamberTemp and annealChamberTemp > x: + anneal_code += '\nM191 S{}'.format(x) + anneal_code += '\nG4 S60' # Wait 60 seconds after reaching each cooldown temperature + + if annealBedTemp: + anneal_code += '\nM140 S0' + if annealChamberTemp: + anneal_code += '\nM141 S0' + anneal_code += '\nM117 Annealing complete.' + + return anneal_code + + def execute(self, data): + heating_element = self.getSettingValueByKey("heatingElement") + + # Set bed and chamber temp to true/false value based on heating element selection + anneal_bed_temp = 0 + anneal_chamber_temp = 0 + if heating_element == "bed" or heating_element == "all": + anneal_bed_temp = self.getSettingValueByKey("annealBedTemp") + if heating_element == "chamber" or heating_element == "all": + anneal_chamber_temp = self.getSettingValueByKey("annealChamberTemp") + + anneal_minutes = self.getSettingValueByKey("annealMinutes") + initial_beep = self.getSettingValueByKey("firmware_config") + final_cooling_temp = self.getSettingValueByKey("endCoolingTemp") + + # Test printing the generated anneal code + #print(self.generateAnnealCode(110, 120, False, 50)) + anneal_code = self.generateAnnealCode(anneal_bed_temp, anneal_chamber_temp, anneal_minutes, initial_beep, final_cooling_temp) + + try: + end_of_gcode_index = data[-1].index(';End sof Gcode') + except ValueError: + data[-1] += anneal_code + '\n' + else: + data[-1] = data[-1][:end_of_gcode_index] + anneal_code + '\n' + data[-1][end_of_gcode_index:] + + return data \ No newline at end of file From e39b1d8bb37bb127e92fc68337a5ea254dbee8ee Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Wed, 20 Apr 2022 16:16:33 -0400 Subject: [PATCH 006/185] Update AnnealAfterPrint.py --- plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py b/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py index a9cffd9e88..7ca8fac79d 100644 --- a/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py +++ b/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py @@ -151,10 +151,10 @@ class AnnealAfterPrint(Script): anneal_code = self.generateAnnealCode(anneal_bed_temp, anneal_chamber_temp, anneal_minutes, initial_beep, final_cooling_temp) try: - end_of_gcode_index = data[-1].index(';End sof Gcode') + end_of_gcode_index = data[-1].index(';End of Gcode') except ValueError: data[-1] += anneal_code + '\n' else: data[-1] = data[-1][:end_of_gcode_index] + anneal_code + '\n' + data[-1][end_of_gcode_index:] - return data \ No newline at end of file + return data From b8b7ec0666b2f281fc24730af75bcee1af818cc6 Mon Sep 17 00:00:00 2001 From: NilsRo Date: Sat, 14 May 2022 09:29:06 +0200 Subject: [PATCH 007/185] Update anycubic_i3_mega_s.def.json first layer speed inheritance --- resources/definitions/anycubic_i3_mega_s.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index db9ccf7072..c2dd2be358 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -74,8 +74,8 @@ "speed_roofing": { "value": "speed_topbottom" }, "speed_travel": { "value": 100.0, "maximum_value_warning": 150.0, "maximum_value": 200.0 }, "speed_layer_0": { "value": "speed_topbottom if speed_topbottom < 20 else 20" }, - "speed_print_layer_0": { "value": "speed_topbottom if speed_topbottom < 20 else 20" }, - "speed_travel_layer_0": { "value": 100.0 }, + "speed_print_layer_0": { "value": "speed_layer_0" }, + "speed_travel_layer_0": { "value": "speed_travel" }, "speed_prime_tower": { "value": "speed_topbottom" }, "speed_support": { "value": "speed_wall_0" }, "speed_support_interface": { "value": "speed_topbottom" }, From 7b4d8585f916e8e84a58eaa4dfb03bf588197638 Mon Sep 17 00:00:00 2001 From: NilsRo Date: Sat, 14 May 2022 09:46:53 +0200 Subject: [PATCH 008/185] Update anycubic_i3_mega_s.def.json Added maximum temp warnings --- resources/definitions/anycubic_i3_mega_s.def.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index c2dd2be358..f04b6a8467 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -47,8 +47,12 @@ "machine_max_jerk_e": { "value": 5 }, "material_diameter": { "default_value": 1.75 }, - "material_print_temperature_layer_0": { "value": "material_print_temperature + 5"}, + "material_print_temperature": { "maximum_value_warning": 260 }, + "material_print_temperature_layer_0": { "value": "material_print_temperature + 5", "maximum_value_warning": 260 }, "material_final_print_temperature": { "value": "material_print_temperature" }, + "material_bed_temperature": { "maximum_value_warning": 110 }, + "material_bed_temperature_layer_0": { "maximum_value_warning": 110 }, + "material_flow": { "value": 100 }, "top_bottom_thickness": { "value": "layer_height_0 + layer_height * math.floor(1.2 / layer_height)" }, From 1f5589828b7601490fbb41fb4dfac1dbfd4215fe Mon Sep 17 00:00:00 2001 From: NilsRo Date: Sun, 15 May 2022 19:59:24 +0200 Subject: [PATCH 009/185] Update anycubic_i3_mega_s.def.json Updated FAN Optimized initial purge of filament --- resources/definitions/anycubic_i3_mega_s.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index f04b6a8467..2e972c78b6 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -29,7 +29,7 @@ "machine_center_is_zero": { "default_value": false }, "gantry_height": { "value": "0" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:filament_cost;{filament_cost}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X120 F4000 ; Quickly wipe away from the filament line`" }, + "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:filament_cost;{filament_cost}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X50 F500 ; wipe away from the filament line\nG1 X100 F9000 ; Quickly wipe away from the filament line" }, "machine_end_gcode": { "default_value": "M104 S0 ; Extruder off \nM140 S0 ; Heatbed off \nM107 ; Fan off \nG91 ; relative positioning \nG1 E-5 F300 ; retract a little \nG1 Z+10 E-5 ; X-20 Y-20 F{travel_xy_speed} ; lift print head \nG28 X0 Y0 ; homing \nG1 Y180 F2000 ; reset feedrate \nM84 ; disable stepper motors \nG90 ; absolute positioning \nM300 S440 P200 ; Make Print Completed Tones \nM300 S660 P250 ; beep \nM300 S880 P300 ; beep" }, "machine_max_acceleration_x": { "value": 3000 }, @@ -111,7 +111,7 @@ "travel_retract_before_outer_wall": { "value": true }, "cool_fan_full_at_height": { "value": "layer_height_0 + 2 * layer_height" }, - "cool_fan_speed": { "value": 70 }, + "cool_fan_speed": { "value": 100 }, "cool_fan_speed_0": { "value": 30 }, "cool_fan_enabled": { "value": true }, From c7946e5c78872d7ab51188195d349e430ade8efb Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Sat, 6 Aug 2022 16:54:37 -0400 Subject: [PATCH 010/185] Added Cooling Rate setting --- .../scripts/AnnealAfterPrint.py | 41 +++++++++++++------ 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py b/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py index 7ca8fac79d..1e47f2d9af 100644 --- a/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py +++ b/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Anson Liu +# Copyright (c) 2022 Anson Liu # The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. from ..Script import Script @@ -6,10 +6,11 @@ from ..Script import Script class AnnealAfterPrint(Script): """Adds timed annealing GCODE after objects finish printing. - Bed annealing works best with a glass bed and a plastic container placed on top of the object during annealing. + Bed annealing works best with a glass bed and a container placed on top of the object during annealing. """ def getSettingDataString(self): + return """{ "name": "Anneal After Print", "key": "AnnealAfterPrint", @@ -20,7 +21,7 @@ class AnnealAfterPrint(Script): "heatingElement": { "label": "Heating Element", - "description": "Printer heating element to use for annealing.", + "description": "Printer heating element to use for annealing. Glass bed and 4-8 mm brim is recommended if XY dimensional stability is desired.", "type": "enum", "options": { @@ -33,7 +34,7 @@ class AnnealAfterPrint(Script): "annealBedTemp": { "label": "Bed Temperature", - "description": "Bed temperature annealing. Recommended bed temperature is greater of build plate printing or vendor specified annealing temperature for material. E.g. PC 90-110 C, PLA 60-90 C", + "description": "Bed temperature annealing. Recommended bed temperature is greater of build plate printing or vendor specified annealing temperature for material. Temperature should be between material glass transition temperature and melting point. E.g. PC 90-110 C, PLA 60-90 C", "unit": "C", "type": "float", "default_value": 0, @@ -43,7 +44,7 @@ class AnnealAfterPrint(Script): "annealChamberTemp": { "label": "Chamber Temperature", - "description": "Chamber temperature for annealing.", + "description": "Chamber temperature for annealing. Temperature should be between material glass transition temperature and melting point.", "unit": "C", "type": "float", "default_value": 0, @@ -57,7 +58,7 @@ class AnnealAfterPrint(Script): "unit": "min", "type": "int", "default_value": 120, - "minimum_value": 0 + "minimum_value": 1 }, "reminderBeep": { @@ -69,24 +70,37 @@ class AnnealAfterPrint(Script): "endCoolingTemp": { "label": "End Cooling Temperature", - "description": "Temperature to end gradual cooling at. After annealing at target temperature for specified duration temperature decreases by 1 degree after 1 minute at each step.", + "description": "Temperature to end gradual cooling at after annealing at target temperature for specified duration.", "unit": "C", "type": "float", "default_value": 50, "minimum_value": 0 + }, + "coolingRate": + { + "label": "Cooling Rate", + "description": "Gradual cooling rate. Temperature decreases by 1 C after specified seconds at each degree", + "unit": "sec/C", + "type": "int", + "default_value": 60, + "minimum_value": 0 } } }""" - def generateAnnealCode(self, annealBedTemp, annealChamberTemp, annealMinutes, initialBeep, endCoolingTemp): + settingData = settingData.format(anneal_temp_guideline) + print(settingData) + return settingData + + def generateAnnealCode(self, annealBedTemp, annealChamberTemp, annealMinutes, initialBeep, endCoolingTemp, coolingRate): anneal_code = ';Generated Annealing GCODE by Anson Liu' if initialBeep: - anneal_code += '\nM300 ;play beep for plastic container placement reminder' + anneal_code += '\nM300 ;play beep for container placement reminder' anneal_code += '\nM117 ' if annealBedTemp: - anneal_code += 'Place plastic container over objects on bed now! ' + anneal_code += 'Place container over objects on bed. ' anneal_code += 'Waiting until annealing temp reached...' anneal_code += '\nM73 P00 ;reset progress bar to 0' @@ -121,7 +135,7 @@ class AnnealAfterPrint(Script): anneal_code += '\nM190 S{}'.format(x) # Wait for buildplate only if heating if annealChamberTemp and annealChamberTemp > x: anneal_code += '\nM191 S{}'.format(x) - anneal_code += '\nG4 S60' # Wait 60 seconds after reaching each cooldown temperature + anneal_code += '\nG4 S{}'.format(int(coolingRate)) # Wait user specified seconds after reaching each cooldown temperature if annealBedTemp: anneal_code += '\nM140 S0' @@ -143,12 +157,13 @@ class AnnealAfterPrint(Script): anneal_chamber_temp = self.getSettingValueByKey("annealChamberTemp") anneal_minutes = self.getSettingValueByKey("annealMinutes") - initial_beep = self.getSettingValueByKey("firmware_config") + initial_beep = self.getSettingValueByKey("reminderBeep") final_cooling_temp = self.getSettingValueByKey("endCoolingTemp") + cooling_rate = self.getSettingValueByKey("coolingRate") # Test printing the generated anneal code #print(self.generateAnnealCode(110, 120, False, 50)) - anneal_code = self.generateAnnealCode(anneal_bed_temp, anneal_chamber_temp, anneal_minutes, initial_beep, final_cooling_temp) + anneal_code = self.generateAnnealCode(anneal_bed_temp, anneal_chamber_temp, anneal_minutes, initial_beep, final_cooling_temp, cooling_rate) try: end_of_gcode_index = data[-1].index(';End of Gcode') From 17ce499f717abcccd1add583a67da0cd6efbab72 Mon Sep 17 00:00:00 2001 From: Tim Kuipers Date: Tue, 8 Feb 2022 16:15:56 +0100 Subject: [PATCH 011/185] interlocking settings --- resources/definitions/fdmprinter.def.json | 75 +++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0c939e03f2..a53dc9122e 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6259,6 +6259,81 @@ "settable_per_mesh": false, "settable_per_extruder": false }, + "interlocking_enable": + { + "label": "Generate Interlocking Structure", + "description": "Whether to generate a structure at the interface between two models of a different material in order to improve the adhesion. The structure consists of cells of horizontal beams with alternating direction which connect to each other over the Z direction in order to interlock with the beams of the other material.", + "type": "bool", + "enabled": "extruders_enabled_count > 1", + "default_value": false, + "resolve": "(extruders_enabled_count > 1) and any(extruderValues('interlocking_enable'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "interlocking_beam_width": + { + "label": "Interlocking Beam Width", + "description": "The width of the beams of this material in the interlocking structure.", + "type": "float", + "unit": "mm", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 0.8, + "value": "2 * wall_line_width_0", + "minimum_value": "0.001", + "maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)", + "maximum_value_warning": "max(extruderValues('wall_line_width_0')) * 6", + "settable_per_mesh": true, + "settable_per_extruder": true + }, + "interlocking_orientation": + { + "label": "Interlocking Structure Orientation", + "description": "The direction of the beams of the interlocking structure in the XY plane as a rotation about the Z axis.", + "unit": "°", + "type": "float", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 22.5, + "resolve": "min(extruderValues('interlocking_orientation'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "interlocking_beam_layer_count": + { + "label": "Interlocking Beam Layer Count", + "description": "The height of the beams of the interlocking structure as measured in number of layers. Less layers is stronger, but more prone to manufacturing defects.", + "type": "int", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 2, + "minimum_value": "1", + "resolve": "max(extruderValues('interlocking_beam_layer_count'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "interlocking_depth": + { + "label": "Interlocking Depth", + "description": "The number of cells along the depth of the interface between two models where an interlocking structure is to be generated. Less cells is better, but too little cells can cause the not to be connected properly, which reduces the adhesion performance of the interlocking structure.", + "type": "int", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 2, + "minimum_value": "1", + "resolve": "max(extruderValues('interlocking_depth'))", + "settable_per_mesh": false, + "settable_per_extruder": false + }, + "interlocking_boundary_avoidance": + { + "label": "Interlocking Boundary Avoidance", + "description": "The distance close to the boundary of the print where not to generate an interlocking structure as measued in number of cells times 2. If set to a value lower than the Inerlocking Depth then the interlocking structure can become visible on the outside of the print near the interfaces where two models meet.", + "type": "int", + "enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')", + "default_value": 3, + "minimum_value": "0", + "resolve": "max(extruderValues('interlocking_boundary_avoidance'))", + "minimum_value_warning": "resolveOrValue('interlocking_depth')", + "settable_per_mesh": false, + "settable_per_extruder": false + }, "switch_extruder_retraction_amount": { "label": "Nozzle Switch Retraction Distance", From c8a4b8fe62a9439ea6c1bf2703a15c4024b3e59a Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Sun, 21 Aug 2022 22:44:10 -0400 Subject: [PATCH 012/185] Create definition file for UMO+ version of DXU Override default machine disallow area to fit UMO+ bed size --- resources/definitions/dxu_umo.def.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 resources/definitions/dxu_umo.def.json diff --git a/resources/definitions/dxu_umo.def.json b/resources/definitions/dxu_umo.def.json new file mode 100644 index 0000000000..315cfd0143 --- /dev/null +++ b/resources/definitions/dxu_umo.def.json @@ -0,0 +1,12 @@ +{ + "version": 2, + "name": "UMO+ DXU", + "inherits": "dxu", + "overrides": { + "machine_disallowed_areas": { + "default_value": [ + [[100, -102.5], [ 110, -102.5], [ 110, -62.5], [100, -62.5]] + ] + } + } +} From d25a3818033f9bd3d04d734288747f8b41ac5ef2 Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Sun, 21 Aug 2022 22:46:08 -0400 Subject: [PATCH 013/185] Create UMO+ version of dxu_dual definition Overrides machine disallowed area with correct values for UMO+ bed --- resources/definitions/dxu_umo_dual.def.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 resources/definitions/dxu_umo_dual.def.json diff --git a/resources/definitions/dxu_umo_dual.def.json b/resources/definitions/dxu_umo_dual.def.json new file mode 100644 index 0000000000..cf0658e49c --- /dev/null +++ b/resources/definitions/dxu_umo_dual.def.json @@ -0,0 +1,12 @@ +{ + "version": 2, + "name": "UMO+ DXU Dual", + "inherits": "dxu_dual", + "overrides": { + "machine_disallowed_areas": { + "default_value": [ + [[100, -102.5], [ 110, -102.5], [ 110, -62.5], [100, -62.5]] + ] + } + } +} From 4f39f58f64b157a0d0e26b9378de9e7a3d4458be Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Sun, 21 Aug 2022 22:47:07 -0400 Subject: [PATCH 014/185] Delete AnnealAfterPrint.py clean up dxu_umo branch --- .../scripts/AnnealAfterPrint.py | 175 ------------------ 1 file changed, 175 deletions(-) delete mode 100644 plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py diff --git a/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py b/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py deleted file mode 100644 index 1e47f2d9af..0000000000 --- a/plugins/PostProcessingPlugin/scripts/AnnealAfterPrint.py +++ /dev/null @@ -1,175 +0,0 @@ -# Copyright (c) 2022 Anson Liu -# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. - -from ..Script import Script - -class AnnealAfterPrint(Script): - """Adds timed annealing GCODE after objects finish printing. - - Bed annealing works best with a glass bed and a container placed on top of the object during annealing. - """ - - def getSettingDataString(self): - - return """{ - "name": "Anneal After Print", - "key": "AnnealAfterPrint", - "metadata": {}, - "version": 2, - "settings": - { - "heatingElement": - { - "label": "Heating Element", - "description": "Printer heating element to use for annealing. Glass bed and 4-8 mm brim is recommended if XY dimensional stability is desired.", - "type": "enum", - "options": - { - "bed": "Bed", - "chamber": "Chamber", - "all": "Bed and Chamber" - }, - "default_value": "bed" - }, - "annealBedTemp": - { - "label": "Bed Temperature", - "description": "Bed temperature annealing. Recommended bed temperature is greater of build plate printing or vendor specified annealing temperature for material. Temperature should be between material glass transition temperature and melting point. E.g. PC 90-110 C, PLA 60-90 C", - "unit": "C", - "type": "float", - "default_value": 0, - "minimum_value": 0, - "enabled": "heatingElement == \\\"bed\\\" or heatingElement == \\\"all\\\"" - }, - "annealChamberTemp": - { - "label": "Chamber Temperature", - "description": "Chamber temperature for annealing. Temperature should be between material glass transition temperature and melting point.", - "unit": "C", - "type": "float", - "default_value": 0, - "minimum_value": 0, - "enabled": "heatingElement == \\\"chamber\\\" or heatingElement == \\\"all\\\"" - }, - "annealMinutes": - { - "label": "Annealing Target Temperature Duration", - "description": "Duration in minutes to anneal at target temperature. After duration ends gradually cool down to End Cooling Temperature.", - "unit": "min", - "type": "int", - "default_value": 120, - "minimum_value": 1 - }, - "reminderBeep": - { - "label": "Beep on annealing start", - "description": "", - "type": "bool", - "default_value": false - }, - "endCoolingTemp": - { - "label": "End Cooling Temperature", - "description": "Temperature to end gradual cooling at after annealing at target temperature for specified duration.", - "unit": "C", - "type": "float", - "default_value": 50, - "minimum_value": 0 - }, - "coolingRate": - { - "label": "Cooling Rate", - "description": "Gradual cooling rate. Temperature decreases by 1 C after specified seconds at each degree", - "unit": "sec/C", - "type": "int", - "default_value": 60, - "minimum_value": 0 - } - } - }""" - - settingData = settingData.format(anneal_temp_guideline) - print(settingData) - return settingData - - def generateAnnealCode(self, annealBedTemp, annealChamberTemp, annealMinutes, initialBeep, endCoolingTemp, coolingRate): - anneal_code = ';Generated Annealing GCODE by Anson Liu' - - if initialBeep: - anneal_code += '\nM300 ;play beep for container placement reminder' - - anneal_code += '\nM117 ' - if annealBedTemp: - anneal_code += 'Place container over objects on bed. ' - anneal_code += 'Waiting until annealing temp reached...' - anneal_code += '\nM73 P00 ;reset progress bar to 0' - - if annealBedTemp: - anneal_code += '\nM190 R{} ;wait for buildplate to reach temp in C even if cooling'.format(annealBedTemp) - if annealChamberTemp: - anneal_code += '\nM191 R{} ;wait for chamber to reach temp in C even if cooling'.format(annealChamberTemp) - - anneal_code += '\nM117 ' - if annealBedTemp: - anneal_code += 'Keep plastic container over objects. ' - anneal_code += 'Annealing...' - anneal_code += '\nM73 P00' # reset progress bar to 0 - - def generateDwellAndProgressCode(minutes): # Update progress bar and time every minute - dp_code = 'M73 P0 R{}'.format(minutes) - for x in range(1, minutes+1): - dwellWaitSeconds = 60 - dp_code += '\nG4 S{}'.format(dwellWaitSeconds) - progress = round(x/minutes * 100, 2) - remainingMinutes = minutes - x - dp_code += '\nM73 P{} R{}'.format(progress, remainingMinutes) - - return dp_code - - anneal_code += '\n' + generateDwellAndProgressCode(int(annealMinutes)) - - anneal_code += '\nM117 Annealing complete. Gradually lowering bed temperature...' - - for x in reversed(range(endCoolingTemp, max(annealBedTemp, annealChamberTemp))): - if annealBedTemp and annealBedTemp > x: - anneal_code += '\nM190 S{}'.format(x) # Wait for buildplate only if heating - if annealChamberTemp and annealChamberTemp > x: - anneal_code += '\nM191 S{}'.format(x) - anneal_code += '\nG4 S{}'.format(int(coolingRate)) # Wait user specified seconds after reaching each cooldown temperature - - if annealBedTemp: - anneal_code += '\nM140 S0' - if annealChamberTemp: - anneal_code += '\nM141 S0' - anneal_code += '\nM117 Annealing complete.' - - return anneal_code - - def execute(self, data): - heating_element = self.getSettingValueByKey("heatingElement") - - # Set bed and chamber temp to true/false value based on heating element selection - anneal_bed_temp = 0 - anneal_chamber_temp = 0 - if heating_element == "bed" or heating_element == "all": - anneal_bed_temp = self.getSettingValueByKey("annealBedTemp") - if heating_element == "chamber" or heating_element == "all": - anneal_chamber_temp = self.getSettingValueByKey("annealChamberTemp") - - anneal_minutes = self.getSettingValueByKey("annealMinutes") - initial_beep = self.getSettingValueByKey("reminderBeep") - final_cooling_temp = self.getSettingValueByKey("endCoolingTemp") - cooling_rate = self.getSettingValueByKey("coolingRate") - - # Test printing the generated anneal code - #print(self.generateAnnealCode(110, 120, False, 50)) - anneal_code = self.generateAnnealCode(anneal_bed_temp, anneal_chamber_temp, anneal_minutes, initial_beep, final_cooling_temp, cooling_rate) - - try: - end_of_gcode_index = data[-1].index(';End of Gcode') - except ValueError: - data[-1] += anneal_code + '\n' - else: - data[-1] = data[-1][:end_of_gcode_index] + anneal_code + '\n' + data[-1][end_of_gcode_index:] - - return data From 11350097aaa7413c8cce99db7fc799c1edf774ad Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Mon, 12 Sep 2022 14:59:14 -0400 Subject: [PATCH 015/185] Update dxu_umo_dual.def.json --- resources/definitions/dxu_umo_dual.def.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resources/definitions/dxu_umo_dual.def.json b/resources/definitions/dxu_umo_dual.def.json index cf0658e49c..82f8675fb0 100644 --- a/resources/definitions/dxu_umo_dual.def.json +++ b/resources/definitions/dxu_umo_dual.def.json @@ -7,6 +7,15 @@ "default_value": [ [[100, -102.5], [ 110, -102.5], [ 110, -62.5], [100, -62.5]] ] + }, + "machine_width": { "default_value": 220 }, + "machine_depth": { "default_value": 205 }, + "machine_height": { "default_value": 200 }, + "machine_nozzle_heat_up_speed": { + "default_value": 2.0 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 0.8 } } } From 6472c679fd51eb262014de220dec37ec1b320735 Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Mon, 12 Sep 2022 14:59:30 -0400 Subject: [PATCH 016/185] Update dxu_umo.def.json --- resources/definitions/dxu_umo.def.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resources/definitions/dxu_umo.def.json b/resources/definitions/dxu_umo.def.json index 315cfd0143..ae1b671255 100644 --- a/resources/definitions/dxu_umo.def.json +++ b/resources/definitions/dxu_umo.def.json @@ -7,6 +7,15 @@ "default_value": [ [[100, -102.5], [ 110, -102.5], [ 110, -62.5], [100, -62.5]] ] + }, + "machine_width": { "default_value": 220 }, + "machine_depth": { "default_value": 205 }, + "machine_height": { "default_value": 200 }, + "machine_nozzle_heat_up_speed": { + "default_value": 2.0 + }, + "machine_nozzle_cool_down_speed": { + "default_value": 0.8 } } } From 4201305712d7de0633b49e7ec3a96e6a665f7e8c Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Tue, 20 Sep 2022 09:37:00 -0400 Subject: [PATCH 017/185] Update nozzle heat up speed --- resources/definitions/dxu_umo.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/dxu_umo.def.json b/resources/definitions/dxu_umo.def.json index ae1b671255..9347211224 100644 --- a/resources/definitions/dxu_umo.def.json +++ b/resources/definitions/dxu_umo.def.json @@ -12,7 +12,7 @@ "machine_depth": { "default_value": 205 }, "machine_height": { "default_value": 200 }, "machine_nozzle_heat_up_speed": { - "default_value": 2.0 + "default_value": 1.95 }, "machine_nozzle_cool_down_speed": { "default_value": 0.8 From 4830eb8f5af55db3c768bcf86e2a42036e5de86b Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Tue, 20 Sep 2022 09:37:23 -0400 Subject: [PATCH 018/185] Update nozzle heat up speed --- resources/definitions/dxu_umo_dual.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/dxu_umo_dual.def.json b/resources/definitions/dxu_umo_dual.def.json index 82f8675fb0..d0bea5b5a2 100644 --- a/resources/definitions/dxu_umo_dual.def.json +++ b/resources/definitions/dxu_umo_dual.def.json @@ -12,7 +12,7 @@ "machine_depth": { "default_value": 205 }, "machine_height": { "default_value": 200 }, "machine_nozzle_heat_up_speed": { - "default_value": 2.0 + "default_value": 1.95 }, "machine_nozzle_cool_down_speed": { "default_value": 0.8 From f1fc0b44f7bf8485d2bbbc30c5f1dba30a0f5d89 Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Wed, 5 Oct 2022 13:03:39 -0400 Subject: [PATCH 019/185] Updated start and end gcode --- resources/definitions/dxu_umo.def.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/resources/definitions/dxu_umo.def.json b/resources/definitions/dxu_umo.def.json index 9347211224..be40747b6e 100644 --- a/resources/definitions/dxu_umo.def.json +++ b/resources/definitions/dxu_umo.def.json @@ -16,6 +16,18 @@ }, "machine_nozzle_cool_down_speed": { "default_value": 0.8 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_start_gcode" : { + "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"; Script based on an original created by tjjfvi (https://github.com/tjjfvi)\\n; An up-to-date version of the tjjfvi's original script can be found\\n; here: https://csi.t6.fyi/\\n; Note - This script will only work in Cura V4.2 and above!\\n; --- Global Settings\\n; layer_height = {layer_height}\\n; smooth_spiralized_contours = {smooth_spiralized_contours}\\n; magic_mesh_surface_mode = {magic_mesh_surface_mode}\\n; machine_extruder_count = {machine_extruder_count}\\n; --- Single Extruder Settings\\n; speed_z_hop = {speed_z_hop}\\n; retraction_amount = {retraction_amount}\\n; retraction_hop = {retraction_hop}\\n; retraction_hop_enabled = {retraction_hop_enabled}\\n; retraction_enable = {retraction_enable}\\n; retraction_speed = {retraction_speed}\\n; retraction_retract_speed = {retraction_retract_speed}\\n; retraction_prime_speed = {retraction_prime_speed}\\n; speed_travel = {speed_travel}\\n\\nM355 S1 P25;turn on case light\\n\\n;material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T{initial_extruder_nr} ;reset filament diameter\\nG28 ;home all\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM104 T{initial_extruder_nr} S{material_standby_temperature, initial_extruder_nr}\\nG0 X25 Y20 F7200 ;change Y20 to Y0 ansonl\\nG0 Z20 F2400\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nG0 X210 Y0 F7200\\nG92 E-12.0 ; increase purge 6.5 to 12\\nG1 E0 F200 ;purge nozzle ;change F45 to F200 like ultimaker code ansonl\\nG1 E-6.5 F1500\\nG1 E0 F1500\\nG1 Y50 F9000 ;add quick movement to Y50 like ultimaker code ansonl\\nM400 ;finish all moves\\nT{initial_extruder_nr}\\n;end of startup sequence\\n\\nM355 S1 P50;turn on case light\"" + }, + "machine_end_gcode" : { + "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";end code from UM3\\nG91 ;Relative movement\\nG0 F15000 X8.0 Y8.0 Z3.5 E-4.5 ;Wiping+material retraction ;increase bed lower 0.5>5.0 and add Y movement\\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\\nG90 ;Disable relative movement\\n\\nG90 ;absolute positioning\\nM104 S0 T0 ;extruder heater off\\nM104 S0 T1\\nM140 S0 ;turn off bed\\nT0 ; move to the first head\\nM107 ;fan off\\nM355 S0 ;turn off case light\"" } } } From 1b705338b813be75b4295c0ecf24684110899763 Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Wed, 5 Oct 2022 13:04:04 -0400 Subject: [PATCH 020/185] Updated dual extruder start and end gcode --- resources/definitions/dxu_umo_dual.def.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/resources/definitions/dxu_umo_dual.def.json b/resources/definitions/dxu_umo_dual.def.json index d0bea5b5a2..1744bf1d52 100644 --- a/resources/definitions/dxu_umo_dual.def.json +++ b/resources/definitions/dxu_umo_dual.def.json @@ -16,6 +16,18 @@ }, "machine_nozzle_cool_down_speed": { "default_value": 0.8 + }, + "machine_nozzle_size": { + "default_value": 0.4 + }, + "material_diameter": { + "default_value": 1.75 + }, + "machine_start_gcode" : { + "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"; Script based on an original created by tjjfvi (https://github.com/tjjfvi)\\n; An up-to-date version of the tjjfvi's original script can be found\\n; here: https://csi.t6.fyi/\\n; Note - This script will only work in Cura V4.2 and above!\\n; --- Global Settings\\n; layer_height = {layer_height}\\n; smooth_spiralized_contours = {smooth_spiralized_contours}\\n; magic_mesh_surface_mode = {magic_mesh_surface_mode}\\n; machine_extruder_count = {machine_extruder_count}\\n; --- Single Extruder Settings\\n; speed_z_hop = {speed_z_hop}\\n; retraction_amount = {retraction_amount}\\n; retraction_hop = {retraction_hop}\\n; retraction_hop_enabled = {retraction_hop_enabled}\\n; retraction_enable = {retraction_enable}\\n; retraction_speed = {retraction_speed}\\n; retraction_retract_speed = {retraction_retract_speed}\\n; retraction_prime_speed = {retraction_prime_speed}\\n; speed_travel = {speed_travel}\\n; --- Multi-Extruder Settings\\n; speed_z_hop_0 = {speed_z_hop, 0}\\n; speed_z_hop_1 = {speed_z_hop, 1}\\n; retraction_amount_0 = {retraction_amount, 0}\\n; retraction_amount_1 = {retraction_amount, 1}\\n; retraction_hop_0 = {retraction_hop, 0}\\n; retraction_hop_1 = {retraction_hop, 1}\\n; retraction_hop_enabled_0 = {retraction_hop_enabled, 0}\\n; retraction_hop_enabled_1 = {retraction_hop_enabled, 1}\\n; retraction_prime_speed_0 = {retraction_prime_speed, 0}\\n; retraction_prime_speed_1 = {retraction_prime_speed, 1}\\n; retraction_retract_speed_0 = {retraction_retract_speed, 0}\\n; retraction_retract_speed_1 = {retraction_retract_speed, 1}\\n; retraction_speed_0 = {retraction_speed, 0}\\n; retraction_speed_1 = {retraction_speed, 1}\\n; retraction_enable_0 = {retraction_enable, 0}\\n; retraction_enable_1 = {retraction_enable, 1}\\n; speed_travel_0 = {speed_travel, 0}\\n; speed_travel_1 = {speed_travel, 1}\\n\\nM355 S1 P25;turn on case light\\n\\n;material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nM104 T0 S{material_standby_temperature, 0}\\nM104 T0 S{material_print_temperature_layer_0, 0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T0 ;reset filament diameter\\nM200 D0 T1\\nG28 ;home all\\nT1 ; move to the nozzle 2\\nG0 Z20 F2400 ;move the platform to 30mm\\nM109 T1 S{material_print_temperature_layer_0, 1}\\nG0 X210 Y0 F7200 ;change Y20 to Y0 ansonl\\nG92 E0\\nG92 E-12.0 ;prime distance ;increase purge 6.5 to 12\\nG1 E0 F200 ;purge nozzle ;change F45 to F200 like ultimaker code ansonl\\nG1 E-6.5 F1500 ; retract\\nT0 ; move to the nozzle 1\\nM104 T1 S{material_standby_temperature, 1}\\nG0 Z20 F2400\\nM109 T0 S{material_print_temperature_layer_0, 0}\\nG0 X210 Y0 F7200 ;change Y20 to Y0 ansonl\\nG92 E0\\nG92 E-12.0\\nG1 E0 F200 ;purge nozzle\\nG1 E-6.5 F1500\\nM104 T0 S{material_standby_temperature, 0}\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nM400 ;finish all moves\\nG1 E0 F1500\\nG92 E0\\nG1 Y100 F9000 ;add quick movement to Y50 like ultimaker code ansonl\\n;end of startup sequence\\n\\nM355 S1 P50;turn on case light\"" + }, + "machine_end_gcode" : { + "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \";end code from UM3\\nG91 ;Relative movement\\nG0 F15000 X8.0 Y8.0 Z3.5 E-4.5 ;Wiping+material retraction ;increase bed lower 0.5>5.0 and add Y movement\\nG0 F10000 Z1.5 E4.5 ;Compensation for the retraction\\nG90 ;Disable relative movement\\n\\nG90 ;absolute positioning\\nM104 S0 T0 ;extruder heater off\\nM104 S0 T1\\nM140 S0 ;turn off bed\\nT0 ; move to the first head\\nM107 ;fan off\\nM355 S0 ;turn off case light\"" } } } From 25a0355cfee91112e381dfd35813fdd9aa05d3b1 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 1 Nov 2022 16:20:09 +0100 Subject: [PATCH 021/185] Update dialog size CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 4899c6873a..30db1174cc 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -14,9 +14,11 @@ UM.Dialog id: base title: catalog.i18nc("@title:window", "Open Project") - minimumWidth: UM.Theme.getSize("popup_dialog").width - minimumHeight: UM.Theme.getSize("popup_dialog").height + minimumWidth: UM.Theme.getSize("modal_window_minimum").width + minimumHeight: UM.Theme.getSize("modal_window_minimum").height width: minimumWidth + height: minimumHeight + backgroundColor: UM.Theme.getColor("main_background") margin: UM.Theme.getSize("default_margin").width property int comboboxHeight: UM.Theme.getSize("default_margin").height From afd3d92c5ee07bb8c850dfe882b1ce2a843734c6 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 1 Nov 2022 16:28:23 +0100 Subject: [PATCH 022/185] Use wide button spacing CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 30db1174cc..4f7d5737e6 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -502,7 +502,7 @@ UM.Dialog } } - buttonSpacing: UM.Theme.getSize("default_margin").width + buttonSpacing: UM.Theme.getSize("wide_margin").width rightButtons: [ Cura.TertiaryButton From fa317a9e140b144cb36c2eb4e97b84782921687b Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 1 Nov 2022 16:31:24 +0100 Subject: [PATCH 023/185] Use unique id for WorkspaceDialog CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 4f7d5737e6..d56ffef7dd 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -11,7 +11,7 @@ import Cura 1.1 as Cura UM.Dialog { - id: base + id: workspaceDialog title: catalog.i18nc("@title:window", "Open Project") minimumWidth: UM.Theme.getSize("modal_window_minimum").width @@ -107,7 +107,7 @@ UM.Dialog anchors.right: parent.right width: (parent.width / 3) | 0 height: visible ? comboboxHeight : 0 - visible: base.visible && machineResolveComboBox.model.count > 1 + visible: workspaceDialog.visible && machineResolveComboBox.model.count > 1 text: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") Cura.ComboBox { @@ -461,14 +461,14 @@ UM.Dialog color: warning ? UM.Theme.getColor("warning") : "transparent" anchors.bottom: parent.bottom width: parent.width - height: childrenRect.height + 2 * base.margin + height: childrenRect.height + 2 * workspaceDialog.margin Column { height: childrenRect.height - spacing: base.margin + spacing: workspaceDialog.margin - anchors.margins: base.margin + anchors.margins: workspaceDialog.margin anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top @@ -478,7 +478,7 @@ UM.Dialog id: warningRow height: childrenRect.height visible: warning - spacing: base.margin + spacing: workspaceDialog.margin UM.ColorImage { width: UM.Theme.getSize("extruder_icon").width From 41fd36a03836eb6d90d88560fcacad380dfafce6 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 1 Nov 2022 17:10:24 +0100 Subject: [PATCH 024/185] Adjust margins CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index d56ffef7dd..1bd2cf32c0 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -82,17 +82,10 @@ UM.Dialog UM.Label { id: titleLabel + anchors.margins: UM.Theme.getSize("default_margin").height text: catalog.i18nc("@action:title", "Summary - Cura Project") font: UM.Theme.getFont("large") } - - Rectangle - { - id: separator - color: UM.Theme.getColor("text") - width: parent.width - height: UM.Theme.getSize("default_lining").height - } } Item @@ -160,6 +153,7 @@ UM.Dialog { width: parent.width height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").height UM.Label { @@ -236,6 +230,7 @@ UM.Dialog { width: parent.width height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").height UM.Label { @@ -352,6 +347,7 @@ UM.Dialog { width: parent.width height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").height Row { height: childrenRect.height @@ -393,6 +389,7 @@ UM.Dialog { width: parent.width height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").height UM.Label { From b01ff2f57e743acd84677e9a21a1e539f57a8c0f Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 1 Nov 2022 17:10:59 +0100 Subject: [PATCH 025/185] Add open with above printer drop down. CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 1bd2cf32c0..51b9e8e4e9 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -78,6 +78,7 @@ UM.Dialog { width: parent.width height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").height UM.Label { @@ -102,9 +103,21 @@ UM.Dialog height: visible ? comboboxHeight : 0 visible: workspaceDialog.visible && machineResolveComboBox.model.count > 1 text: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") + + UM.Label + { + id: open_with_label + anchors.top: parent.top + anchors.left: parent.left + text: catalog.i18nc("@action:label", "Open With") + font: UM.Theme.getFont("default_bold") + } + Cura.ComboBox { id: machineResolveComboBox + anchors.top: open_with_label.bottom + anchors.left: parent.left model: manager.updatableMachinesModel visible: machineResolveStrategyTooltip.visible textRole: "displayName" From f72c980c208ac25e7c05380c69ed4e3e0c90f966 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 1 Nov 2022 18:19:50 +0100 Subject: [PATCH 026/185] Add icons to the left of titles Align title text with values in table CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 213 +++++++++++++++++--------- 1 file changed, 144 insertions(+), 69 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 51b9e8e4e9..48499c1d91 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -93,6 +93,7 @@ UM.Dialog { width: parent.width height: childrenRect.height + anchors.leftMargin: UM.Theme.getSize("default_margin") UM.TooltipArea { @@ -109,6 +110,7 @@ UM.Dialog id: open_with_label anchors.top: parent.top anchors.left: parent.left + anchors.bottomMargin: UM.Theme.getSize("default_margin").height text: catalog.i18nc("@action:label", "Open With") font: UM.Theme.getFont("default_bold") } @@ -162,18 +164,36 @@ UM.Dialog } } + Row + { + id: printerSettingsTitleRow + anchors.top: parent.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("default_margin").width + + UM.ColorImage + { + anchors.verticalCenter: parent.verticalCenter + source: UM.Theme.getIcon("Printer") + height: UM.Theme.getSize("medium_button_icon").height + width: height + } + UM.Label + { + text: catalog.i18nc("@action:label", "Printer settings") + anchors.verticalCenter: parent.verticalCenter + font: UM.Theme.getFont("default_bold") + } + } + Column { + id: printerSettingsValuesTable width: parent.width height: childrenRect.height spacing: UM.Theme.getSize("default_margin").height - - UM.Label - { - id: printer_settings_label - text: catalog.i18nc("@action:label", "Printer settings") - font: UM.Theme.getFont("default_bold") - } + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + anchors.top: printerSettingsTitleRow.bottom Row { @@ -239,17 +259,36 @@ UM.Dialog } } - Column + Row { - width: parent.width - height: childrenRect.height - spacing: UM.Theme.getSize("default_margin").height + id: profileSettingsTitleRow + anchors.top: parent.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("default_margin").width + UM.ColorImage + { + anchors.verticalCenter: parent.verticalCenter + source: UM.Theme.getIcon("Printer") + height: UM.Theme.getSize("medium_button_icon").height + width: height + } UM.Label { text: catalog.i18nc("@action:label", "Profile settings") + anchors.verticalCenter: parent.verticalCenter font: UM.Theme.getFont("default_bold") } + } + + Column + { + id: profileSettingsValuesTable + width: parent.width + height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + anchors.top: profileSettingsTitleRow.bottom Row { @@ -356,24 +395,35 @@ UM.Dialog } } + Row + { + id: materialSettingsTitleRow + anchors.top: parent.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("default_margin").width + + UM.ColorImage + { + anchors.verticalCenter: parent.verticalCenter + source: UM.Theme.getIcon("Printer") + height: UM.Theme.getSize("medium_button_icon").height + width: height + } + UM.Label + { + text: catalog.i18nc("@action:label", "Material settings") + anchors.verticalCenter: parent.verticalCenter + font: UM.Theme.getFont("default_bold") + } + } + Column { width: parent.width height: childrenRect.height spacing: UM.Theme.getSize("default_margin").height - Row - { - height: childrenRect.height - width: parent.width - spacing: UM.Theme.getSize("narrow_margin").width - - UM.Label - { - text: catalog.i18nc("@action:label", "Material settings") - font: UM.Theme.getFont("default_bold") - width: (parent.width / 3) | 0 - } - } + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + anchors.top: materialSettingsTitleRow.bottom Repeater { @@ -398,67 +448,92 @@ UM.Dialog } } - Column + Item { width: parent.width height: childrenRect.height - spacing: UM.Theme.getSize("default_margin").height - UM.Label + Row { - text: catalog.i18nc("@action:label", "Setting visibility") - font: UM.Theme.getFont("default_bold") + id: visibilitySettingsTitleRow + anchors.top: parent.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("default_margin").width + + UM.ColorImage + { + anchors.verticalCenter: parent.verticalCenter + source: UM.Theme.getIcon("Printer") + height: UM.Theme.getSize("medium_button_icon").height + width: height + } + UM.Label + { + text: catalog.i18nc("@action:label", "Setting visibility") + anchors.verticalCenter: parent.verticalCenter + font: UM.Theme.getFont("default_bold") + } } + + Column + { + width: parent.width + height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + anchors.top: visibilitySettingsTitleRow.bottom + + Row + { + width: parent.width + height: childrenRect.height + UM.Label + { + text: catalog.i18nc("@action:label", "Mode") + width: (parent.width / 3) | 0 + } + UM.Label + { + text: manager.activeMode + width: (parent.width / 3) | 0 + } + } + Row + { + width: parent.width + height: childrenRect.height + visible: manager.hasVisibleSettingsField + UM.Label + { + text: catalog.i18nc("@action:label", "Visible settings:") + width: (parent.width / 3) | 0 + } + UM.Label + { + text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) + width: (parent.width / 3) | 0 + } + } + } + Row { width: parent.width height: childrenRect.height - UM.Label + visible: manager.hasObjectsOnPlate + UM.ColorImage { - text: catalog.i18nc("@action:label", "Mode") - width: (parent.width / 3) | 0 + width: warningLabel.height + height: width + source: UM.Theme.getIcon("Information") + color: UM.Theme.getColor("text") } UM.Label { - text: manager.activeMode - width: (parent.width / 3) | 0 + id: warningLabel + text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") } } - Row - { - width: parent.width - height: childrenRect.height - visible: manager.hasVisibleSettingsField - UM.Label - { - text: catalog.i18nc("@action:label", "Visible settings:") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) - width: (parent.width / 3) | 0 - } - } - } - - Row - { - width: parent.width - height: childrenRect.height - visible: manager.hasObjectsOnPlate - UM.ColorImage - { - width: warningLabel.height - height: width - source: UM.Theme.getIcon("Information") - color: UM.Theme.getColor("text") - } - UM.Label - { - id: warningLabel - text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") - } } } } From d12b59ec0f47e2c92b7fd03b31f55c26dd25113b Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 14:17:05 +0100 Subject: [PATCH 027/185] Refactor workspace sections into separate qml file. Refactor an existing hack to force trigger the onIndexChanged functions of the comboboxes. CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 367 +++++++++---------------- plugins/3MFReader/WorkspaceSection.qml | 99 +++++++ 2 files changed, 222 insertions(+), 244 deletions(-) create mode 100644 plugins/3MFReader/WorkspaceSection.qml diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 48499c1d91..187d49693a 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2020 Ultimaker B.V. +// Copyright (c) 2022 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -28,9 +28,12 @@ UM.Dialog { if (visible) { - machineResolveComboBox.currentIndex = 0 - qualityChangesResolveComboBox.currentIndex = 0 - materialResolveComboBox.currentIndex = 0 + // Force relead the comboboxes + // Since this dialog is only created once the first time you open it, these comboxes need to be reloaded + // each time it is shown after the first time so that the indexes will update correctly. + materialSection.reloadValues() + profileSection.reloadValues() + printerSection.reloadValues() } } @@ -89,111 +92,15 @@ UM.Dialog } } - Item + WorkspaceSection { - width: parent.width - height: childrenRect.height - anchors.leftMargin: UM.Theme.getSize("default_margin") - - UM.TooltipArea + id: printerSection + title: catalog.i18nc("@action:label", "Printer settings") + iconSource: UM.Theme.getIcon("Printer") + content: Column { - id: machineResolveStrategyTooltip - anchors.top: parent.top - anchors.right: parent.right - width: (parent.width / 3) | 0 - height: visible ? comboboxHeight : 0 - visible: workspaceDialog.visible && machineResolveComboBox.model.count > 1 - text: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") - - UM.Label - { - id: open_with_label - anchors.top: parent.top - anchors.left: parent.left - anchors.bottomMargin: UM.Theme.getSize("default_margin").height - text: catalog.i18nc("@action:label", "Open With") - font: UM.Theme.getFont("default_bold") - } - - Cura.ComboBox - { - id: machineResolveComboBox - anchors.top: open_with_label.bottom - anchors.left: parent.left - model: manager.updatableMachinesModel - visible: machineResolveStrategyTooltip.visible - textRole: "displayName" - width: parent.width - height: UM.Theme.getSize("button").height - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id == "new" - && model.getItem(currentIndex).type == "default_option") - { - manager.setResolveStrategy("machine", "new") - } - else - { - manager.setResolveStrategy("machine", "override") - manager.setMachineToOverride(model.getItem(currentIndex).id) - } - } - - onVisibleChanged: - { - if (!visible) {return} - - currentIndex = 0 - // If the project printer exists in Cura, set it as the default dropdown menu option. - // No need to check object 0, which is the "Create new" option - for (var i = 1; i < model.count; i++) - { - if (model.getItem(i).name == manager.machineName) - { - currentIndex = i - break - } - } - // The project printer does not exist in Cura. If there is at least one printer of the same - // type, select the first one, else set the index to "Create new" - if (currentIndex == 0 && model.count > 1) - { - currentIndex = 1 - } - } - } - } - - Row - { - id: printerSettingsTitleRow - anchors.top: parent.top - anchors.bottomMargin: UM.Theme.getSize("default_margin").height - spacing: UM.Theme.getSize("default_margin").width - - UM.ColorImage - { - anchors.verticalCenter: parent.verticalCenter - source: UM.Theme.getIcon("Printer") - height: UM.Theme.getSize("medium_button_icon").height - width: height - } - UM.Label - { - text: catalog.i18nc("@action:label", "Printer settings") - anchors.verticalCenter: parent.verticalCenter - font: UM.Theme.getFont("default_bold") - } - } - - Column - { - id: printerSettingsValuesTable - width: parent.width - height: childrenRect.height spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - anchors.top: printerSettingsTitleRow.bottom Row { @@ -230,65 +137,66 @@ UM.Dialog } } } - } - Item - { - width: parent.width - height: childrenRect.height - - UM.TooltipArea + comboboxTitle: catalog.i18nc("@action:label", "Open With") + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") + combobox: Cura.ComboBox { - anchors.right: parent.right - anchors.top: parent.top - width: (parent.width / 3) | 0 - height: visible ? comboboxHeight : 0 - visible: manager.qualityChangesConflict - text: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") - Cura.ComboBox + id: machineResolveComboBox + model: manager.updatableMachinesModel + textRole: "displayName" + visible: workspaceDialog.visible && model.count > 1 + currentIndex: machineVisibleChanged() + + onCurrentIndexChanged: { - model: resolveStrategiesModel - textRole: "label" - id: qualityChangesResolveComboBox - width: parent.width - height: UM.Theme.getSize("button").height - onActivated: + if (model.getItem(currentIndex).id == "new" + && model.getItem(currentIndex).type == "default_option") { - manager.setResolveStrategy("quality_changes", resolveStrategiesModel.get(index).key) + manager.setResolveStrategy("machine", "new") + } + else + { + manager.setResolveStrategy("machine", "override") + manager.setMachineToOverride(model.getItem(currentIndex).id) + } + } + + function machineVisibleChanged() + { + if (!visible) {return} + + currentIndex = 0 + // If the project printer exists in Cura, set it as the default dropdown menu option. + // No need to check object 0, which is the "Create new" option + for (var i = 1; i < model.count; i++) + { + if (model.getItem(i).name == manager.machineName) + { + currentIndex = i + break + } + } + // The project printer does not exist in Cura. If there is at least one printer of the same + // type, select the first one, else set the index to "Create new" + if (currentIndex == 0 && model.count > 1) + { + currentIndex = 1 } } } + } - Row - { - id: profileSettingsTitleRow - anchors.top: parent.top - anchors.bottomMargin: UM.Theme.getSize("default_margin").height - spacing: UM.Theme.getSize("default_margin").width - - UM.ColorImage - { - anchors.verticalCenter: parent.verticalCenter - source: UM.Theme.getIcon("Printer") - height: UM.Theme.getSize("medium_button_icon").height - width: height - } - UM.Label - { - text: catalog.i18nc("@action:label", "Profile settings") - anchors.verticalCenter: parent.verticalCenter - font: UM.Theme.getFont("default_bold") - } - } - - Column + WorkspaceSection + { + id: profileSection + title: catalog.i18nc("@action:label", "Profile settings") + iconSource: UM.Theme.getIcon("Printer") + content: Column { id: profileSettingsValuesTable - width: parent.width - height: childrenRect.height spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - anchors.top: profileSettingsTitleRow.bottom Row { @@ -365,65 +273,38 @@ UM.Dialog } } } + + comboboxTitle: catalog.i18nc("@action:label", "Open With") + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") + combobox: Cura.ComboBox + { + id: qualityChangesResolveComboBox + model: resolveStrategiesModel + textRole: "label" + visible: manager.qualityChangesConflict + + // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded + currentIndex: + { + currentIndex = 0 + } + + onCurrentIndexChanged: + { + manager.setResolveStrategy("quality_changes", resolveStrategiesModel.get(currentIndex).key) + } + } } - Item + WorkspaceSection { - width: parent.width - height: childrenRect.height - - UM.TooltipArea + id: materialSection + title: catalog.i18nc("@action:label", "Material settings") + iconSource: UM.Theme.getIcon("Printer") + content: Column { - id: materialResolveTooltip - anchors.right: parent.right - anchors.top: parent.top - width: (parent.width / 3) | 0 - height: visible ? comboboxHeight : 0 - visible: manager.materialConflict - text: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") - Cura.ComboBox - { - model: resolveStrategiesModel - textRole: "label" - id: materialResolveComboBox - width: parent.width - height: UM.Theme.getSize("button").height - onActivated: - { - manager.setResolveStrategy("material", resolveStrategiesModel.get(index).key) - } - } - } - - Row - { - id: materialSettingsTitleRow - anchors.top: parent.top - anchors.bottomMargin: UM.Theme.getSize("default_margin").height - spacing: UM.Theme.getSize("default_margin").width - - UM.ColorImage - { - anchors.verticalCenter: parent.verticalCenter - source: UM.Theme.getIcon("Printer") - height: UM.Theme.getSize("medium_button_icon").height - width: height - } - UM.Label - { - text: catalog.i18nc("@action:label", "Material settings") - anchors.verticalCenter: parent.verticalCenter - font: UM.Theme.getFont("default_bold") - } - } - - Column - { - width: parent.width - height: childrenRect.height spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - anchors.top: materialSettingsTitleRow.bottom Repeater { @@ -446,42 +327,39 @@ UM.Dialog } } } - } - Item - { - width: parent.width - height: childrenRect.height + comboboxTitle: catalog.i18nc("@action:label", "Open With") + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") - Row + combobox: Cura.ComboBox { - id: visibilitySettingsTitleRow - anchors.top: parent.top - anchors.bottomMargin: UM.Theme.getSize("default_margin").height - spacing: UM.Theme.getSize("default_margin").width + id: materialResolveComboBox + model: resolveStrategiesModel + textRole: "label" + visible: manager.materialConflict - UM.ColorImage + // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded + currentIndex: { - anchors.verticalCenter: parent.verticalCenter - source: UM.Theme.getIcon("Printer") - height: UM.Theme.getSize("medium_button_icon").height - width: height + currentIndex = 0 } - UM.Label + + onCurrentIndexChanged: { - text: catalog.i18nc("@action:label", "Setting visibility") - anchors.verticalCenter: parent.verticalCenter - font: UM.Theme.getFont("default_bold") + manager.setResolveStrategy("material", resolveStrategiesModel.get(currentIndex).key) } } + } - Column + WorkspaceSection + { + id: visibilitySection + title: catalog.i18nc("@action:label", "Setting visibility") + iconSource: UM.Theme.getIcon("Printer") + content: Column { - width: parent.width - height: childrenRect.height spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - anchors.top: visibilitySettingsTitleRow.bottom Row { @@ -515,24 +393,25 @@ UM.Dialog } } } + } - Row + Row + { + id: clearBuildPlateWarning + width: parent.width + height: childrenRect.height + visible: manager.hasObjectsOnPlate + UM.ColorImage { - width: parent.width - height: childrenRect.height - visible: manager.hasObjectsOnPlate - UM.ColorImage - { - width: warningLabel.height - height: width - source: UM.Theme.getIcon("Information") - color: UM.Theme.getColor("text") - } - UM.Label - { - id: warningLabel - text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") - } + width: warningLabel.height + height: width + source: UM.Theme.getIcon("Information") + color: UM.Theme.getColor("text") + } + UM.Label + { + id: warningLabel + text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") } } } diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml new file mode 100644 index 0000000000..03cf18ccdb --- /dev/null +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -0,0 +1,99 @@ +// Copyright (c) 2022 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.3 +import QtQuick.Window 2.2 + +import UM 1.5 as UM +import Cura 1.1 as Cura + + +Item +{ + property alias title: sectionTitle.text + property alias iconSource: sectionTitleIcon.source + property Component content: Item { visible: false } + + property alias comboboxTitle: comboboxLabel.text + property Component combobox: Item { visible: false } + property var comboboxTooltipText: "" + property var comboboxVisible: false + + + + width: parent.width + height: childrenRect.height + anchors.leftMargin: UM.Theme.getSize("default_margin").width + + UM.TooltipArea + { + id: comboboxTooltip + width: (parent.width / 3) | 0 + height: visible ? UM.Theme.getSize("default_margin").heightcomboboxHeight : 0 + anchors.top: parent.top + anchors.right: parent.right + visible: combobox.visible + text: comboboxTooltipText + + UM.Label + { + id: comboboxLabel + anchors.top: parent.top + anchors.left: parent.left + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + visible: combobox.visible + text: "" + font: UM.Theme.getFont("default_bold") + } + + Loader + { + id: comboboxLoader + width: parent.width + height: UM.Theme.getSize("button").height + anchors.top: comboboxLabel.bottom + anchors.left: parent.left + sourceComponent: combobox + } + } + + Row + { + id: sectionTitleRow + anchors.top: parent.top + anchors.bottomMargin: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("default_margin").width + + UM.ColorImage + { + id: sectionTitleIcon + anchors.verticalCenter: parent.verticalCenter + source: "" + height: UM.Theme.getSize("medium_button_icon").height + width: height + } + UM.Label + { + id: sectionTitle + text: "" + anchors.verticalCenter: parent.verticalCenter + font: UM.Theme.getFont("default_bold") + } + } + + Loader + { + width: parent.width + height: content.height + anchors.top: sectionTitleRow.bottom + sourceComponent: content + } + + function reloadValues() + { + comboboxLoader.sourceComponent = null + comboboxLoader.sourceComponent = combobox + } +} \ No newline at end of file From cde07b9fe443a21339917e60cd5ba36e924c4692 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 14:18:47 +0100 Subject: [PATCH 028/185] move signal function to bottom of file CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 187d49693a..705fe2afe8 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -23,20 +23,6 @@ UM.Dialog margin: UM.Theme.getSize("default_margin").width property int comboboxHeight: UM.Theme.getSize("default_margin").height - onClosing: manager.notifyClosed() - onVisibleChanged: - { - if (visible) - { - // Force relead the comboboxes - // Since this dialog is only created once the first time you open it, these comboxes need to be reloaded - // each time it is shown after the first time so that the indexes will update correctly. - materialSection.reloadValues() - profileSection.reloadValues() - printerSection.reloadValues() - } - } - Flickable { clip: true @@ -498,6 +484,19 @@ UM.Dialog } ] + onClosing: manager.notifyClosed() onRejected: manager.onCancelButtonClicked() onAccepted: manager.onOkButtonClicked() + onVisibleChanged: + { + if (visible) + { + // Force relead the comboboxes + // Since this dialog is only created once the first time you open it, these comboxes need to be reloaded + // each time it is shown after the first time so that the indexes will update correctly. + materialSection.reloadValues() + profileSection.reloadValues() + printerSection.reloadValues() + } + } } From 3a07d14b4b588ee94636515ab42dbf40c391a3b3 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 14:19:35 +0100 Subject: [PATCH 029/185] remove comboboxheight CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 1 - plugins/3MFReader/WorkspaceSection.qml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 705fe2afe8..f6d60be46b 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -21,7 +21,6 @@ UM.Dialog backgroundColor: UM.Theme.getColor("main_background") margin: UM.Theme.getSize("default_margin").width - property int comboboxHeight: UM.Theme.getSize("default_margin").height Flickable { diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index 03cf18ccdb..572018dea9 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -31,7 +31,7 @@ Item { id: comboboxTooltip width: (parent.width / 3) | 0 - height: visible ? UM.Theme.getSize("default_margin").heightcomboboxHeight : 0 + height: visible ? UM.Theme.getSize("default_margin").height : 0 anchors.top: parent.top anchors.right: parent.right visible: combobox.visible From 25ecb0e62161ee9c0cf9b5bb8eb7479d37080813 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 14:21:37 +0100 Subject: [PATCH 030/185] Make types specific Remove unused imports CURA-9424 --- plugins/3MFReader/WorkspaceSection.qml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index 572018dea9..b3296a8b67 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -3,11 +3,9 @@ import QtQuick 2.10 import QtQuick.Controls 2.3 -import QtQuick.Layouts 1.3 -import QtQuick.Window 2.2 + import UM 1.5 as UM -import Cura 1.1 as Cura Item @@ -18,10 +16,8 @@ Item property alias comboboxTitle: comboboxLabel.text property Component combobox: Item { visible: false } - property var comboboxTooltipText: "" - property var comboboxVisible: false - - + property string comboboxTooltipText: "" + property bool comboboxVisible: false width: parent.width height: childrenRect.height From 1764c338a044080c3f310dc11c4e9ac9c4ba3c8f Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 14:23:36 +0100 Subject: [PATCH 031/185] fix visibility check CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 3 +++ plugins/3MFReader/WorkspaceSection.qml | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index f6d60be46b..30ffe05665 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -125,6 +125,7 @@ UM.Dialog comboboxTitle: catalog.i18nc("@action:label", "Open With") comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") + comboboxVisible: workspaceDialog.visible && manager.updatableMachinesModel.count > 1 combobox: Cura.ComboBox { id: machineResolveComboBox @@ -261,6 +262,7 @@ UM.Dialog comboboxTitle: catalog.i18nc("@action:label", "Open With") comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") + comboboxVisible: manager.qualityChangesConflict combobox: Cura.ComboBox { id: qualityChangesResolveComboBox @@ -315,6 +317,7 @@ UM.Dialog comboboxTitle: catalog.i18nc("@action:label", "Open With") comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") + comboboxVisible: manager.materialConflict combobox: Cura.ComboBox { diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index b3296a8b67..cc0ddfbb65 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -30,7 +30,7 @@ Item height: visible ? UM.Theme.getSize("default_margin").height : 0 anchors.top: parent.top anchors.right: parent.right - visible: combobox.visible + visible: comboboxVisible text: comboboxTooltipText UM.Label @@ -39,7 +39,7 @@ Item anchors.top: parent.top anchors.left: parent.left anchors.bottomMargin: UM.Theme.getSize("default_margin").height - visible: combobox.visible + visible: comboboxVisible text: "" font: UM.Theme.getFont("default_bold") } From dbba1c411035a837725894729eb89f7a390b9e3f Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 15:14:33 +0100 Subject: [PATCH 032/185] patch checking for base parent component of Combobox to check if it exists first. This should be refactored out some time. CURA-9424 --- resources/qml/Widgets/ComboBox.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/resources/qml/Widgets/ComboBox.qml b/resources/qml/Widgets/ComboBox.qml index eac85bfb44..a7eeb33f6a 100644 --- a/resources/qml/Widgets/ComboBox.qml +++ b/resources/qml/Widgets/ComboBox.qml @@ -18,6 +18,7 @@ ComboBox property var defaultTextOnEmptyModel: catalog.i18nc("@label", "No items to select from") // Text displayed in the combobox when the model is empty property var defaultTextOnEmptyIndex: "" // Text displayed in the combobox when the model has items but no item is selected property alias textFormat: contentLabel.textFormat + property alias backgroundColor: background.color enabled: delegateModel.count > 0 @@ -45,7 +46,7 @@ ComboBox State { name: "highlighted" - when: (base.hovered || control.hovered) && !control.activeFocus + when: ((base != undefined && base.hovered) || control.hovered) && !control.activeFocus PropertyChanges { target: background @@ -56,6 +57,7 @@ ComboBox background: UM.UnderlineBackground { + id: background // Rectangle for highlighting when this combobox needs to pulse. Rectangle { From 7171249d3f56745acc227f57e8f07cf7a547a36a Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 15:33:47 +0100 Subject: [PATCH 033/185] Adjust margins on dialog to match designs CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 616 ++++++++++++------------- plugins/3MFReader/WorkspaceSection.qml | 4 +- 2 files changed, 309 insertions(+), 311 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 30ffe05665..4a6ade7d08 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -20,7 +20,6 @@ UM.Dialog height: minimumHeight backgroundColor: UM.Theme.getColor("main_background") - margin: UM.Theme.getSize("default_margin").width Flickable { @@ -60,246 +59,135 @@ UM.Dialog { width: parent.width height: childrenRect.height - spacing: UM.Theme.getSize("default_margin").height + spacing: UM.Theme.getSize("wide_margin").height + + UM.Label + { + id: titleLabel + text: catalog.i18nc("@action:title", "Summary - Cura Project") + font: UM.Theme.getFont("large") + } Column { width: parent.width height: childrenRect.height spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width - UM.Label + WorkspaceSection { - id: titleLabel - anchors.margins: UM.Theme.getSize("default_margin").height - text: catalog.i18nc("@action:title", "Summary - Cura Project") - font: UM.Theme.getFont("large") - } - } - - WorkspaceSection - { - id: printerSection - title: catalog.i18nc("@action:label", "Printer settings") - iconSource: UM.Theme.getIcon("Printer") - content: Column - { - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - - Row + id: printerSection + title: catalog.i18nc("@action:label", "Printer settings") + iconSource: UM.Theme.getIcon("Printer") + content: Column { - width: parent.width - height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - UM.Label - { - text: catalog.i18nc("@action:label", "Type") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.machineType - width: (parent.width / 3) | 0 - } - } - - Row - { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.machineName - width: (parent.width / 3) | 0 - wrapMode: Text.WordWrap - } - } - } - - comboboxTitle: catalog.i18nc("@action:label", "Open With") - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") - comboboxVisible: workspaceDialog.visible && manager.updatableMachinesModel.count > 1 - combobox: Cura.ComboBox - { - id: machineResolveComboBox - model: manager.updatableMachinesModel - textRole: "displayName" - visible: workspaceDialog.visible && model.count > 1 - currentIndex: machineVisibleChanged() - - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id == "new" - && model.getItem(currentIndex).type == "default_option") - { - manager.setResolveStrategy("machine", "new") - } - else - { - manager.setResolveStrategy("machine", "override") - manager.setMachineToOverride(model.getItem(currentIndex).id) - } - } - - function machineVisibleChanged() - { - if (!visible) {return} - - currentIndex = 0 - // If the project printer exists in Cura, set it as the default dropdown menu option. - // No need to check object 0, which is the "Create new" option - for (var i = 1; i < model.count; i++) - { - if (model.getItem(i).name == manager.machineName) - { - currentIndex = i - break - } - } - // The project printer does not exist in Cura. If there is at least one printer of the same - // type, select the first one, else set the index to "Create new" - if (currentIndex == 0 && model.count > 1) - { - currentIndex = 1 - } - } - } - } - - WorkspaceSection - { - id: profileSection - title: catalog.i18nc("@action:label", "Profile settings") - iconSource: UM.Theme.getIcon("Printer") - content: Column - { - id: profileSettingsValuesTable - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - - Row - { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Name") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.qualityName - width: (parent.width / 3) | 0 - wrapMode: Text.WordWrap - } - } - - Row - { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Intent") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.intentName - width: (parent.width / 3) | 0 - wrapMode: Text.WordWrap - } - } - - Row - { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Not in profile") - visible: manager.numUserSettings != 0 - width: (parent.width / 3) | 0 - } - UM.Label - { - text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) - visible: manager.numUserSettings != 0 - width: (parent.width / 3) | 0 - } - } - - Row - { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Derivative from") - visible: manager.numSettingsOverridenByQualityChanges != 0 - width: (parent.width / 3) | 0 - } - UM.Label - { - text: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) - width: (parent.width / 3) | 0 - visible: manager.numSettingsOverridenByQualityChanges != 0 - wrapMode: Text.WordWrap - } - } - } - - comboboxTitle: catalog.i18nc("@action:label", "Open With") - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") - comboboxVisible: manager.qualityChangesConflict - combobox: Cura.ComboBox - { - id: qualityChangesResolveComboBox - model: resolveStrategiesModel - textRole: "label" - visible: manager.qualityChangesConflict - - // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded - currentIndex: - { - currentIndex = 0 - } - - onCurrentIndexChanged: - { - manager.setResolveStrategy("quality_changes", resolveStrategiesModel.get(currentIndex).key) - } - } - } - - WorkspaceSection - { - id: materialSection - title: catalog.i18nc("@action:label", "Material settings") - iconSource: UM.Theme.getIcon("Printer") - content: Column - { - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - - Repeater - { - model: manager.materialLabels - delegate: Row + Row { width: parent.width height: childrenRect.height + + UM.Label + { + text: catalog.i18nc("@action:label", "Type") + width: (parent.width / 3) | 0 + } + UM.Label + { + text: manager.machineType + width: (parent.width / 3) | 0 + } + } + + Row + { + width: parent.width + height: childrenRect.height + + UM.Label + { + text: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name") + width: (parent.width / 3) | 0 + } + UM.Label + { + text: manager.machineName + width: (parent.width / 3) | 0 + wrapMode: Text.WordWrap + } + } + } + + comboboxTitle: catalog.i18nc("@action:label", "Open With") + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") + comboboxVisible: workspaceDialog.visible && manager.updatableMachinesModel.count > 1 + combobox: Cura.ComboBox + { + id: machineResolveComboBox + model: manager.updatableMachinesModel + textRole: "displayName" + visible: workspaceDialog.visible && model.count > 1 + currentIndex: machineVisibleChanged() + + onCurrentIndexChanged: + { + if (model.getItem(currentIndex).id == "new" + && model.getItem(currentIndex).type == "default_option") + { + manager.setResolveStrategy("machine", "new") + } + else + { + manager.setResolveStrategy("machine", "override") + manager.setMachineToOverride(model.getItem(currentIndex).id) + } + } + + function machineVisibleChanged() + { + if (!visible) {return} + + currentIndex = 0 + // If the project printer exists in Cura, set it as the default dropdown menu option. + // No need to check object 0, which is the "Create new" option + for (var i = 1; i < model.count; i++) + { + if (model.getItem(i).name == manager.machineName) + { + currentIndex = i + break + } + } + // The project printer does not exist in Cura. If there is at least one printer of the same + // type, select the first one, else set the index to "Create new" + if (currentIndex == 0 && model.count > 1) + { + currentIndex = 1 + } + } + } + } + + WorkspaceSection + { + id: profileSection + title: catalog.i18nc("@action:label", "Profile settings") + iconSource: UM.Theme.getIcon("Printer") + content: Column + { + id: profileSettingsValuesTable + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + + Row + { + width: parent.width + height: childrenRect.height + UM.Label { text: catalog.i18nc("@action:label", "Name") @@ -307,101 +195,211 @@ UM.Dialog } UM.Label { - text: modelData + text: manager.qualityName width: (parent.width / 3) | 0 wrapMode: Text.WordWrap } } + + Row + { + width: parent.width + height: childrenRect.height + + UM.Label + { + text: catalog.i18nc("@action:label", "Intent") + width: (parent.width / 3) | 0 + } + UM.Label + { + text: manager.intentName + width: (parent.width / 3) | 0 + wrapMode: Text.WordWrap + } + } + + Row + { + width: parent.width + height: childrenRect.height + + UM.Label + { + text: catalog.i18nc("@action:label", "Not in profile") + visible: manager.numUserSettings != 0 + width: (parent.width / 3) | 0 + } + UM.Label + { + text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) + visible: manager.numUserSettings != 0 + width: (parent.width / 3) | 0 + } + } + + Row + { + width: parent.width + height: childrenRect.height + + UM.Label + { + text: catalog.i18nc("@action:label", "Derivative from") + visible: manager.numSettingsOverridenByQualityChanges != 0 + width: (parent.width / 3) | 0 + } + UM.Label + { + text: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) + width: (parent.width / 3) | 0 + visible: manager.numSettingsOverridenByQualityChanges != 0 + wrapMode: Text.WordWrap + } + } + } + + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") + comboboxVisible: manager.qualityChangesConflict + combobox: Cura.ComboBox + { + id: qualityChangesResolveComboBox + model: resolveStrategiesModel + textRole: "label" + visible: manager.qualityChangesConflict + + // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded + currentIndex: + { + currentIndex = 0 + } + + onCurrentIndexChanged: + { + manager.setResolveStrategy("quality_changes", resolveStrategiesModel.get(currentIndex).key) + } + } + } + + WorkspaceSection + { + id: materialSection + title: catalog.i18nc("@action:label", "Material settings") + iconSource: UM.Theme.getIcon("Printer") + content: Column + { + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + + Repeater + { + model: manager.materialLabels + delegate: Row + { + width: parent.width + height: childrenRect.height + UM.Label + { + text: catalog.i18nc("@action:label", "Name") + width: (parent.width / 3) | 0 + } + UM.Label + { + text: modelData + width: (parent.width / 3) | 0 + wrapMode: Text.WordWrap + } + } + } + } + + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") + comboboxVisible: manager.materialConflict + + combobox: Cura.ComboBox + { + id: materialResolveComboBox + model: resolveStrategiesModel + textRole: "label" + visible: manager.materialConflict + + // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded + currentIndex: + { + currentIndex = 0 + } + + onCurrentIndexChanged: + { + manager.setResolveStrategy("material", resolveStrategiesModel.get(currentIndex).key) + } + } + } + + WorkspaceSection + { + id: visibilitySection + title: catalog.i18nc("@action:label", "Setting visibility") + iconSource: UM.Theme.getIcon("Printer") + content: Column + { + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + + Row + { + width: parent.width + height: childrenRect.height + UM.Label + { + text: catalog.i18nc("@action:label", "Mode") + width: (parent.width / 3) | 0 + } + UM.Label + { + text: manager.activeMode + width: (parent.width / 3) | 0 + } + } + Row + { + width: parent.width + height: childrenRect.height + visible: manager.hasVisibleSettingsField + UM.Label + { + text: catalog.i18nc("@action:label", "Visible settings:") + width: (parent.width / 3) | 0 + } + UM.Label + { + text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) + width: (parent.width / 3) | 0 + } + } } } - comboboxTitle: catalog.i18nc("@action:label", "Open With") - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") - comboboxVisible: manager.materialConflict - - combobox: Cura.ComboBox + Row { - id: materialResolveComboBox - model: resolveStrategiesModel - textRole: "label" - visible: manager.materialConflict - - // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded - currentIndex: + id: clearBuildPlateWarning + width: parent.width + height: childrenRect.height + visible: manager.hasObjectsOnPlate + UM.ColorImage { - currentIndex = 0 + width: warningLabel.height + height: width + source: UM.Theme.getIcon("Information") + color: UM.Theme.getColor("text") } - - onCurrentIndexChanged: + UM.Label { - manager.setResolveStrategy("material", resolveStrategiesModel.get(currentIndex).key) + id: warningLabel + text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") } } } - - WorkspaceSection - { - id: visibilitySection - title: catalog.i18nc("@action:label", "Setting visibility") - iconSource: UM.Theme.getIcon("Printer") - content: Column - { - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - - Row - { - width: parent.width - height: childrenRect.height - UM.Label - { - text: catalog.i18nc("@action:label", "Mode") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.activeMode - width: (parent.width / 3) | 0 - } - } - Row - { - width: parent.width - height: childrenRect.height - visible: manager.hasVisibleSettingsField - UM.Label - { - text: catalog.i18nc("@action:label", "Visible settings:") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) - width: (parent.width / 3) | 0 - } - } - } - } - - Row - { - id: clearBuildPlateWarning - width: parent.width - height: childrenRect.height - visible: manager.hasObjectsOnPlate - UM.ColorImage - { - width: warningLabel.height - height: width - source: UM.Theme.getIcon("Information") - color: UM.Theme.getColor("text") - } - UM.Label - { - id: warningLabel - text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") - } - } } } } diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index cc0ddfbb65..f4e53b7cd7 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -38,8 +38,7 @@ Item id: comboboxLabel anchors.top: parent.top anchors.left: parent.left - anchors.bottomMargin: UM.Theme.getSize("default_margin").height - visible: comboboxVisible + visible: comboboxVisible && text != "" text: "" font: UM.Theme.getFont("default_bold") } @@ -50,6 +49,7 @@ Item width: parent.width height: UM.Theme.getSize("button").height anchors.top: comboboxLabel.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height anchors.left: parent.left sourceComponent: combobox } From b1e559ff1a831ef3675628096bae335f641da74b Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 18:09:49 +0100 Subject: [PATCH 034/185] Add padding below section titles CURA-9424 --- plugins/3MFReader/WorkspaceSection.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index f4e53b7cd7..575fc8fea5 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -59,7 +59,7 @@ Item { id: sectionTitleRow anchors.top: parent.top - anchors.bottomMargin: UM.Theme.getSize("default_margin").height + bottomPadding: UM.Theme.getSize("default_margin").height spacing: UM.Theme.getSize("default_margin").width UM.ColorImage From 8bb608348115cf6758ab4db8c9ef903bd1772919 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 18:25:05 +0100 Subject: [PATCH 035/185] Create custom component for rows in WorkplaceDialog. CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 162 +++++--------------------- plugins/3MFReader/WorkspaceRow.qml | 34 ++++++ 2 files changed, 64 insertions(+), 132 deletions(-) create mode 100644 plugins/3MFReader/WorkspaceRow.qml diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 4a6ade7d08..b1428cd878 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -86,39 +86,16 @@ UM.Dialog spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - Row + WorkspaceRow { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Type") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.machineType - width: (parent.width / 3) | 0 - } + leftLabelText: catalog.i18nc("@action:label", "Type") + rightLabelText: manager.machineType } - Row + WorkspaceRow { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.machineName - width: (parent.width / 3) | 0 - wrapMode: Text.WordWrap - } + leftLabelText: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name") + rightLabelText: manager.machineName } } @@ -183,79 +160,30 @@ UM.Dialog spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - Row + WorkspaceRow { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Name") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.qualityName - width: (parent.width / 3) | 0 - wrapMode: Text.WordWrap - } + leftLabelText: catalog.i18nc("@action:label", "Name") + rightLabelText: manager.qualityName } - Row + WorkspaceRow { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Intent") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.intentName - width: (parent.width / 3) | 0 - wrapMode: Text.WordWrap - } + leftLabelText: catalog.i18nc("@action:label", "Intent") + rightLabelText: manager.intentName } - Row + WorkspaceRow { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Not in profile") - visible: manager.numUserSettings != 0 - width: (parent.width / 3) | 0 - } - UM.Label - { - text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) - visible: manager.numUserSettings != 0 - width: (parent.width / 3) | 0 - } + leftLabelText: catalog.i18nc("@action:label", "Not in profile") + rightLabelText: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) + visible: manager.numUserSettings != 0 } - Row + WorkspaceRow { - width: parent.width - height: childrenRect.height - - UM.Label - { - text: catalog.i18nc("@action:label", "Derivative from") - visible: manager.numSettingsOverridenByQualityChanges != 0 - width: (parent.width / 3) | 0 - } - UM.Label - { - text: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) - width: (parent.width / 3) | 0 - visible: manager.numSettingsOverridenByQualityChanges != 0 - wrapMode: Text.WordWrap - } + leftLabelText: catalog.i18nc("@action:label", "Derivative from") + rightLabelText: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) + visible: manager.numSettingsOverridenByQualityChanges != 0 } } @@ -294,21 +222,10 @@ UM.Dialog Repeater { model: manager.materialLabels - delegate: Row + delegate: WorkspaceRow { - width: parent.width - height: childrenRect.height - UM.Label - { - text: catalog.i18nc("@action:label", "Name") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: modelData - width: (parent.width / 3) | 0 - wrapMode: Text.WordWrap - } + leftLabelText: catalog.i18nc("@action:label", "Name") + rightLabelText: modelData } } } @@ -346,36 +263,17 @@ UM.Dialog spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - Row + WorkspaceRow { - width: parent.width - height: childrenRect.height - UM.Label - { - text: catalog.i18nc("@action:label", "Mode") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: manager.activeMode - width: (parent.width / 3) | 0 - } + leftLabelText: catalog.i18nc("@action:label", "Mode") + rightLabelText: manager.activeMode } - Row + + WorkspaceRow { - width: parent.width - height: childrenRect.height + leftLabelText: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) + rightLabelText: manager.activeMode visible: manager.hasVisibleSettingsField - UM.Label - { - text: catalog.i18nc("@action:label", "Visible settings:") - width: (parent.width / 3) | 0 - } - UM.Label - { - text: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) - width: (parent.width / 3) | 0 - } } } } diff --git a/plugins/3MFReader/WorkspaceRow.qml b/plugins/3MFReader/WorkspaceRow.qml new file mode 100644 index 0000000000..72cea7b5bd --- /dev/null +++ b/plugins/3MFReader/WorkspaceRow.qml @@ -0,0 +1,34 @@ +// Copyright (c) 2022 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.10 +import QtQuick.Controls 2.3 +import QtQuick.Layouts 1.3 +import QtQuick.Window 2.2 + +import UM 1.5 as UM +import Cura 1.1 as Cura + +Row +{ + property alias leftLabelText: leftLabel.text + property alias rightLabelText: rightLabel.text + + width: parent.width + height: visible ? childrenRect.height : 0 + + UM.Label + { + id: leftLabel + text: catalog.i18nc("@action:label", "Type") + width: (parent.width / 4) | 0 + wrapMode: Text.WordWrap + } + UM.Label + { + id: rightLabel + text: manager.machineType + width: (parent.width / 3) | 0 + wrapMode: Text.WordWrap + } +} \ No newline at end of file From c987ef53159d9f561e4f0adea277a37367ea71c6 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 2 Nov 2022 18:30:46 +0100 Subject: [PATCH 036/185] Adjust warning label margins CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index b1428cd878..3467dfe90d 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -262,6 +262,7 @@ UM.Dialog { spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + bottomPadding: UM.Theme.getSize("narrow_margin").height WorkspaceRow { @@ -283,7 +284,9 @@ UM.Dialog id: clearBuildPlateWarning width: parent.width height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").width visible: manager.hasObjectsOnPlate + UM.ColorImage { width: warningLabel.height From 6126135adb5798067622ca8135e9f7b308625213 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 3 Nov 2022 16:43:01 +0100 Subject: [PATCH 037/185] Adjust dialog margins. Move title into full width white square. CURA-9424 Co-authored-by: Casper Lamboo --- plugins/3MFReader/WorkspaceDialog.qml | 63 ++++++++++++++------------ plugins/3MFReader/WorkspaceSection.qml | 7 ++- 2 files changed, 39 insertions(+), 31 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 3467dfe90d..f79fb6266a 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -14,33 +14,45 @@ UM.Dialog id: workspaceDialog title: catalog.i18nc("@title:window", "Open Project") + margin: UM.Theme.getSize("default_margin").width minimumWidth: UM.Theme.getSize("modal_window_minimum").width minimumHeight: UM.Theme.getSize("modal_window_minimum").height - width: minimumWidth - height: minimumHeight - backgroundColor: UM.Theme.getColor("main_background") + backgroundColor: UM.Theme.getColor("detail_background") - Flickable + headerComponent: Rectangle { - clip: true - width: parent.width - height: parent.height - contentHeight: dialogSummaryItem.height - ScrollBar.vertical: UM.ScrollBar { id: verticalScrollBar } + height: childrenRect.height + 2 * UM.Theme.getSize("default_margin").height + color: UM.Theme.getColor("main_background") - Item + UM.Label + { + id: titleLabel + text: catalog.i18nc("@action:title", "Summary - Cura Project") + font: UM.Theme.getFont("large") + anchors.top: parent.top + anchors.left: parent.left + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.leftMargin: UM.Theme.getSize("default_margin").height + } + } + + Rectangle + { + anchors.fill: parent + UM.I18nCatalog { id: catalog; name: "cura" } + color: UM.Theme.getColor("main_background") + + Flickable { id: dialogSummaryItem - width: verticalScrollBar.visible ? parent.width - verticalScrollBar.width - UM.Theme.getSize("default_margin").width : parent.width - height: childrenRect.height - anchors.margins: 10 * screenScaleFactor + width: parent.width + height: parent.height - UM.I18nCatalog - { - id: catalog - name: "cura" - } + clip: true + + contentHeight: contentColumn.height + ScrollBar.vertical: UM.ScrollBar { id: scrollbar } ListModel { @@ -57,20 +69,13 @@ UM.Dialog Column { - width: parent.width + id: contentColumn + width: parent.width - scrollbar.width height: childrenRect.height - spacing: UM.Theme.getSize("wide_margin").height - - UM.Label - { - id: titleLabel - text: catalog.i18nc("@action:title", "Summary - Cura Project") - font: UM.Theme.getFont("large") - } Column { - width: parent.width + width: parent.width - UM.Theme.getSize("default_margin").width height: childrenRect.height spacing: UM.Theme.getSize("default_margin").height leftPadding: UM.Theme.getSize("default_margin").width @@ -312,7 +317,7 @@ UM.Dialog color: warning ? UM.Theme.getColor("warning") : "transparent" anchors.bottom: parent.bottom width: parent.width - height: childrenRect.height + 2 * workspaceDialog.margin + height: childrenRect.height + (warning ? 2 * workspaceDialog.margin : workspaceDialog.margin) Column { diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index 575fc8fea5..211d8776f3 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -26,18 +26,21 @@ Item UM.TooltipArea { id: comboboxTooltip - width: (parent.width / 3) | 0 + width: (parent.width / 2.5) | 0 height: visible ? UM.Theme.getSize("default_margin").height : 0 anchors.top: parent.top anchors.right: parent.right - visible: comboboxVisible + anchors.rightMargin: UM.Theme.getSize("default_margin").width + text: comboboxTooltipText + visible: comboboxVisible UM.Label { id: comboboxLabel anchors.top: parent.top anchors.left: parent.left + anchors.topMargin: UM.Theme.getSize("default_margin").height visible: comboboxVisible && text != "" text: "" font: UM.Theme.getFont("default_bold") From e954de7f0120fbf9cafec9b71b4efb0609e08b4f Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 3 Nov 2022 16:43:19 +0100 Subject: [PATCH 038/185] Adjust dialog margins. Move title into full width white square. CURA-9424 Co-authored-by: Casper Lamboo --- plugins/3MFReader/WorkspaceDialog.qml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index f79fb6266a..d40f54a34b 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -324,7 +324,11 @@ UM.Dialog height: childrenRect.height spacing: workspaceDialog.margin - anchors.margins: workspaceDialog.margin + anchors.leftMargin: workspaceDialog.margin + anchors.rightMargin: workspaceDialog.margin + anchors.bottomMargin: workspaceDialog.margin + anchors.topMargin: warning ? workspaceDialog.margin : 0 + anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top From f8ed660d58135b5a6b2a39f3c9d5548617c85bb5 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 3 Nov 2022 16:54:56 +0100 Subject: [PATCH 039/185] Update icons CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index d40f54a34b..46eef227dc 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -158,7 +158,7 @@ UM.Dialog { id: profileSection title: catalog.i18nc("@action:label", "Profile settings") - iconSource: UM.Theme.getIcon("Printer") + iconSource: UM.Theme.getIcon("Sliders") content: Column { id: profileSettingsValuesTable @@ -218,7 +218,7 @@ UM.Dialog { id: materialSection title: catalog.i18nc("@action:label", "Material settings") - iconSource: UM.Theme.getIcon("Printer") + iconSource: UM.Theme.getIcon("Spool") content: Column { spacing: UM.Theme.getSize("default_margin").height @@ -262,7 +262,7 @@ UM.Dialog { id: visibilitySection title: catalog.i18nc("@action:label", "Setting visibility") - iconSource: UM.Theme.getIcon("Printer") + iconSource: UM.Theme.getIcon("Eye") content: Column { spacing: UM.Theme.getSize("default_margin").height From 2019d8f3af63ff28a566c2953aca6ca4553f7252 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 4 Nov 2022 15:11:04 +0100 Subject: [PATCH 040/185] Start MachineSelector refactor by allowing list model to be passed in. CURA-9424 --- plugins/MonitorStage/MonitorMenu.qml | 2 ++ plugins/PrepareStage/PrepareMenu.qml | 2 ++ resources/qml/PrinterSelector/MachineSelector.qml | 5 ++++- resources/qml/PrinterSelector/MachineSelectorList.qml | 1 - 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/MonitorStage/MonitorMenu.qml b/plugins/MonitorStage/MonitorMenu.qml index bc95c276e8..ba99c3119e 100644 --- a/plugins/MonitorStage/MonitorMenu.qml +++ b/plugins/MonitorStage/MonitorMenu.qml @@ -19,5 +19,7 @@ Item width: UM.Theme.getSize("machine_selector_widget").width height: parent.height anchors.centerIn: parent + + machineListModel: Cura.MachineListModel {} } } \ No newline at end of file diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 42c3c8dde6..01e378c2d4 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -55,6 +55,8 @@ Item Layout.preferredWidth: parent.machineSelectorWidth Layout.fillWidth: true Layout.fillHeight: true + + machineListModel: Cura.MachineListModel {} } Cura.ConfigurationMenu diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 0008529408..ef9112eead 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -16,6 +16,8 @@ Cura.ExpandablePopup property bool isCloudRegistered: Cura.MachineManager.activeMachineHasCloudRegistration property bool isGroup: Cura.MachineManager.activeMachineIsGroup + property alias machineListModel: machineSelectorList.model + readonly property string connectionStatus: { if (isNetworkPrinter) { @@ -156,7 +158,8 @@ Cura.ExpandablePopup } - MouseArea // Connection status tooltip hover area + // Connection status tooltip hover area + MouseArea { id: connectionStatusTooltipHoverArea anchors.fill: parent diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index a328ae69d9..0fa19a51ff 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -10,7 +10,6 @@ import Cura 1.0 as Cura ListView { id: listView - model: Cura.MachineListModel {} section.property: "isOnline" property real contentHeight: childrenRect.height From ccb4d181e632d515a302992d63070dced2f37d91 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 4 Nov 2022 15:37:57 +0100 Subject: [PATCH 041/185] Allow buttons to be passed in for drop down. The change also remove the "Add Printer" and "Manage Printer" buttons from the monitor page drop down. CURA-9424 --- plugins/PrepareStage/PrepareMenu.qml | 35 ++++++++++++ .../qml/PrinterSelector/MachineSelector.qml | 54 ++++++++----------- 2 files changed, 56 insertions(+), 33 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 01e378c2d4..719c598469 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -57,6 +57,41 @@ Item Layout.fillHeight: true machineListModel: Cura.MachineListModel {} + + buttons: [ + Cura.SecondaryButton + { + id: addPrinterButton + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@button", "Add printer") + // The maximum width of the button is half of the total space, minus the padding of the parent, the left + // padding of the component and half the spacing because of the space between buttons. + fixedWidthMode: true + width: parent.width / 2 - leftPadding * 1.5 + onClicked: + { + toggleContent() + Cura.Actions.addMachine.trigger() + } + }, + Cura.SecondaryButton + { + id: managePrinterButton + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + text: catalog.i18nc("@button", "Manage printers") + fixedWidthMode: true + // The maximum width of the button is half of the total space, minus the padding of the parent, the right + // padding of the component and half the spacing because of the space between buttons. + width: parent.width / 2 - rightPadding * 1.5 + onClicked: + { + toggleContent() + Cura.Actions.configureMachines.trigger() + } + } + ] } Cura.ConfigurationMenu diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index ef9112eead..a395ea3913 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -18,6 +18,8 @@ Cura.ExpandablePopup property alias machineListModel: machineSelectorList.model + property list buttons + readonly property string connectionStatus: { if (isNetworkPrinter) { @@ -232,39 +234,25 @@ Cura.ExpandablePopup padding: UM.Theme.getSize("default_margin").width spacing: UM.Theme.getSize("default_margin").width - Cura.SecondaryButton - { - id: addPrinterButton - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@button", "Add printer") - // The maximum width of the button is half of the total space, minus the padding of the parent, the left - // padding of the component and half the spacing because of the space between buttons. - fixedWidthMode: true - width: buttonRow.width / 2 - leftPadding * 1.5 - onClicked: - { - toggleContent() - Cura.Actions.addMachine.trigger() - } - } - - Cura.SecondaryButton - { - id: managePrinterButton - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width - text: catalog.i18nc("@button", "Manage printers") - fixedWidthMode: true - // The maximum width of the button is half of the total space, minus the padding of the parent, the right - // padding of the component and half the spacing because of the space between buttons. - width: buttonRow.width / 2 - rightPadding * 1.5 - onClicked: - { - toggleContent() - Cura.Actions.configureMachines.trigger() - } - } + children: buttons } + + states: [ + State { + name: "noButtons" + when: !buttons || buttons.length == 0 + PropertyChanges + { + target: buttonRow + height: 0 + padding: 0 + } + PropertyChanges + { + target: separator + height: 0 + } + } + ] } } From 1ebf5bb650d1b46ed29d7561630ce1a4113c7c79 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 4 Nov 2022 16:42:07 +0100 Subject: [PATCH 042/185] Update MachineListModel to optionally take a list of global stack to show in list instead of searching the container registry. Add option not to listen to container change events in MachineListModel. CURA-9424 --- cura/Machines/Models/MachineListModel.py | 36 +++++++++++++++++------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 24375b72ce..04faa4d1fc 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -5,7 +5,7 @@ # online cloud connected printers are represented within this ListModel. Additional information such as the number of # connected printers for each printer type is gathered. -from typing import Optional +from typing import Optional, List from PyQt6.QtCore import Qt, QTimer, QObject, pyqtSlot, pyqtProperty, pyqtSignal @@ -14,7 +14,6 @@ from UM.Settings.ContainerStack import ContainerStack from UM.Settings.Interfaces import ContainerInterface from UM.i18n import i18nCatalog from UM.Util import parseBool -from cura.PrinterOutput.PrinterOutputDevice import ConnectionType from cura.Settings.CuraContainerRegistry import CuraContainerRegistry from cura.Settings.GlobalStack import GlobalStack @@ -30,10 +29,11 @@ class MachineListModel(ListModel): IsAbstractMachineRole = Qt.ItemDataRole.UserRole + 7 ComponentTypeRole = Qt.ItemDataRole.UserRole + 8 - def __init__(self, parent: Optional[QObject] = None) -> None: + def __init__(self, parent: Optional[QObject] = None, machines: List[GlobalStack] = None, listenToChanges: bool = True) -> None: super().__init__(parent) self._show_cloud_printers = False + self._machines = machines self._catalog = i18nCatalog("cura") @@ -51,11 +51,11 @@ class MachineListModel(ListModel): self._change_timer.setSingleShot(True) self._change_timer.timeout.connect(self._update) - # Listen to changes - CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged) - CuraContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerChanged) - CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) - self._updateDelayed() + if listenToChanges: + CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged) + CuraContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerChanged) + CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) + self._updateDelayed() showCloudPrintersChanged = pyqtSignal(bool) @@ -79,16 +79,32 @@ class MachineListModel(ListModel): def _updateDelayed(self) -> None: self._change_timer.start() + def _getMachineStacks(self) -> List[ContainerStack]: + if self._machines is not None: + return self._machines + return CuraContainerRegistry.getInstance().findContainerStacks(type="machine") + + def _getAbstractMachineStacks(self) -> List[ContainerStack]: + if self._machines is not None: + return list(filter(lambda machine: parseBool(machine.getMetaDataEntry("is_abstract_machine", False)), self._machines)) + return CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") + + def update(self, machines: List[ContainerStack] = None) -> None: + if machines is not None: + self._machines = machines + + self._update() + def _update(self) -> None: self.clear() from cura.CuraApplication import CuraApplication machines_manager = CuraApplication.getInstance().getMachineManager() - other_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(type="machine") + other_machine_stacks = self._getMachineStacks() other_machine_stacks.sort(key = lambda machine: machine.getName().upper()) - abstract_machine_stacks = CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") + abstract_machine_stacks = self._getAbstractMachineStacks() abstract_machine_stacks.sort(key = lambda machine: machine.getName().upper(), reverse = True) for abstract_machine in abstract_machine_stacks: definition_id = abstract_machine.definition.getId() From 088ea0a768f6f211be376ca8b58f552a67aca057 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 4 Nov 2022 16:44:04 +0100 Subject: [PATCH 043/185] Swap out UpdatableMachinesModel for MachineListModel. This has to be instantiated with the WorkspaceDialog but attaching the listeners throws an error because it is done too early. The listeners are not needed anyway, so they have been disabled. Update WorkspaceDialog.qml to use MachineListModel CURA-9424 --- plugins/3MFReader/WorkspaceDialog.py | 9 ++- plugins/3MFReader/WorkspaceDialog.qml | 86 +++++++++++++-------------- 2 files changed, 47 insertions(+), 48 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 0a8f7784b2..9e0c8158cd 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -5,6 +5,7 @@ from PyQt6.QtCore import pyqtSignal, QObject, pyqtProperty, QCoreApplication, QU from PyQt6.QtGui import QDesktopServices from typing import List, Optional, Dict, cast +from cura.Machines.Models.MachineListModel import MachineListModel from cura.Settings.GlobalStack import GlobalStack from UM.Application import Application from UM.FlameProfiler import pyqtSlot @@ -14,8 +15,6 @@ from UM.Message import Message from UM.PluginRegistry import PluginRegistry from UM.Settings.ContainerRegistry import ContainerRegistry -from .UpdatableMachinesModel import UpdatableMachinesModel - import os import threading import time @@ -63,7 +62,7 @@ class WorkspaceDialog(QObject): self._extruders = [] self._objects_on_plate = False self._is_printer_group = False - self._updatable_machines_model = UpdatableMachinesModel(self) + self._updatable_machines_model = MachineListModel(self, listenToChanges=False) self._missing_package_metadata: List[Dict[str, str]] = [] self._plugin_registry: PluginRegistry = CuraApplication.getInstance().getPluginRegistry() self._install_missing_package_dialog: Optional[QObject] = None @@ -161,8 +160,8 @@ class WorkspaceDialog(QObject): self.machineNameChanged.emit() @pyqtProperty(QObject, notify = updatableMachinesChanged) - def updatableMachinesModel(self) -> UpdatableMachinesModel: - return cast(UpdatableMachinesModel, self._updatable_machines_model) + def updatableMachinesModel(self) -> MachineListModel: + return cast(MachineListModel, self._updatable_machines_model) def setUpdatableMachines(self, updatable_machines: List[GlobalStack]) -> None: self._updatable_machines_model.update(updatable_machines) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 46eef227dc..64444004d5 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -107,50 +107,50 @@ UM.Dialog comboboxTitle: catalog.i18nc("@action:label", "Open With") comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") comboboxVisible: workspaceDialog.visible && manager.updatableMachinesModel.count > 1 - combobox: Cura.ComboBox + combobox: Cura.MachineSelector { - id: machineResolveComboBox - model: manager.updatableMachinesModel - textRole: "displayName" - visible: workspaceDialog.visible && model.count > 1 - currentIndex: machineVisibleChanged() - - onCurrentIndexChanged: - { - if (model.getItem(currentIndex).id == "new" - && model.getItem(currentIndex).type == "default_option") - { - manager.setResolveStrategy("machine", "new") - } - else - { - manager.setResolveStrategy("machine", "override") - manager.setMachineToOverride(model.getItem(currentIndex).id) - } - } - - function machineVisibleChanged() - { - if (!visible) {return} - - currentIndex = 0 - // If the project printer exists in Cura, set it as the default dropdown menu option. - // No need to check object 0, which is the "Create new" option - for (var i = 1; i < model.count; i++) - { - if (model.getItem(i).name == manager.machineName) - { - currentIndex = i - break - } - } - // The project printer does not exist in Cura. If there is at least one printer of the same - // type, select the first one, else set the index to "Create new" - if (currentIndex == 0 && model.count > 1) - { - currentIndex = 1 - } - } + id: machineSelector + headerCornerSide: Cura.RoundedRectangle.Direction.All + width: UM.Theme.getSize("machine_selector_widget").width + height: parent.height + anchors.centerIn: parent + machineListModel: manager.updatableMachinesModel +// onCurrentIndexChanged: +// { +// if (model.getItem(currentIndex).id == "new" +// && model.getItem(currentIndex).type == "default_option") +// { +// manager.setResolveStrategy("machine", "new") +// } +// else +// { +// manager.setResolveStrategy("machine", "override") +// manager.setMachineToOverride(model.getItem(currentIndex).id) +// } +// } +// +// function machineVisibleChanged() +// { +// if (!visible) {return} +// +// currentIndex = 0 +// // If the project printer exists in Cura, set it as the default dropdown menu option. +// // No need to check object 0, which is the "Create new" option +// for (var i = 1; i < model.count; i++) +// { +// if (model.getItem(i).name == manager.machineName) +// { +// currentIndex = i +// break +// } +// } +// // The project printer does not exist in Cura. If there is at least one printer of the same +// // type, select the first one, else set the index to "Create new" +// if (currentIndex == 0 && model.count > 1) +// { +// currentIndex = 1 +// } +// } } } From 802effd8052bbd54fdaa867911d40a67976a46d0 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 8 Nov 2022 15:11:59 +0100 Subject: [PATCH 044/185] The engine now operataes on the area _before_ the offset. The frontend should compensate for that: Do _not_ apply the formula, as this now happens implicitly. CURA-9548 --- resources/definitions/ultimaker.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index d2787afe23..bfdefba55a 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -70,7 +70,7 @@ }, "meshfix_maximum_deviation": { "value": "machine_nozzle_size / 10" }, "meshfix_maximum_resolution": { "value": "max(speed_wall_0 / 75, 0.5)" }, - "minimum_support_area": { "value": "(2 + support_offset)**2" }, + "minimum_support_area": { "value": "4.0" }, "raft_base_speed": { "value": "raft_speed" }, "raft_base_thickness": { "value": "min(machine_nozzle_size * 0.75, 0.3)" }, "raft_interface_fan_speed": { "value": "(raft_base_fan_speed + raft_surface_fan_speed) / 2" }, From bcb88981b7947af86e603ec26f8920453c11f29c Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Tue, 8 Nov 2022 18:00:44 +0100 Subject: [PATCH 045/185] Add support interface wall count settings. part of CURA-9350 --- resources/definitions/fdmprinter.def.json | 48 +++++++++++++++++++++++ resources/setting_visibility/expert.cfg | 3 ++ 2 files changed, 51 insertions(+) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 08a895c9fa..eab18dd00d 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4682,6 +4682,54 @@ "settable_per_mesh": false, "settable_per_extruder": true }, + "support_interface_wall_count": + { + "label": "Support Interface Wall Line Count", + "description": "The number of walls with which to surround support interface. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.", + "default_value": 0, + "minimum_value": "0", + "minimum_value_warning": "0", + "maximum_value_warning": "0 if (support_skip_some_zags and support_interface_pattern == 'zigzag') else 3", + "maximum_value": "999999", + "type": "int", + "value": "1 if (support_interface_pattern == 'zigzag') else 0", + "enabled": "support_interface_enable or support_meshes_present", + "limit_to_extruder": "support_interface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true, + "children": { + "support_roof_wall_count": { + "label": "Support Roof Wall Line Count", + "description": "The number of walls with which to surround support interface roof. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.", + "default_value": 0, + "minimum_value": "0", + "minimum_value_warning": "0", + "maximum_value_warning": "0 if (support_skip_some_zags and support_interface_pattern == 'zigzag') else 3", + "maximum_value": "999999", + "type": "int", + "value": "1 if (support_interface_pattern == 'zigzag') else 0", + "enabled": "support_interface_enable or support_meshes_present", + "limit_to_extruder": "support_interface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + }, + "support_bottom_wall_count": { + "label": "Support Bottom Wall Line Count", + "description": "The number of walls with which to surround support interface floor. Adding a wall can make support print more reliably and can support overhangs better, but increases print time and material used.", + "default_value": 0, + "minimum_value": "0", + "minimum_value_warning": "0", + "maximum_value_warning": "0 if (support_skip_some_zags and support_interface_pattern == 'zigzag') else 3", + "maximum_value": "999999", + "type": "int", + "value": "1 if (support_interface_pattern == 'zigzag') else 0", + "enabled": "support_interface_enable or support_meshes_present", + "limit_to_extruder": "support_interface_extruder_nr", + "settable_per_mesh": false, + "settable_per_extruder": true + } + } + }, "zig_zaggify_support": { "label": "Connect Support Lines", diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 66a26d5466..b7aaeeeaa2 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -277,6 +277,9 @@ minimum_support_area support_interface_enable support_roof_enable support_bottom_enable +support_interface_wall_count +support_roof_wall_count +support_bottom_wall_count support_interface_height support_roof_height support_bottom_height From dd4e1c66b71f17ef8e5eca8cc42065aff86e2f2c Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Nov 2022 12:54:38 +0100 Subject: [PATCH 046/185] Make `MachineSelector` more generic by detaching logic from view By detaching the logic from the view custom handlers can be added to selecting printers. This was needed as the MachineSelector in the `WorkspaceDialog` needed to do something different from the `PreparMenu`. CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 50 ++++++------------- plugins/PrepareStage/PrepareMenu.qml | 7 +++ .../qml/PrinterSelector/MachineSelector.qml | 40 ++++++++------- .../PrinterSelector/MachineSelectorList.qml | 4 +- 4 files changed, 45 insertions(+), 56 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 64444004d5..97cd2eed51 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -115,42 +115,20 @@ UM.Dialog height: parent.height anchors.centerIn: parent machineListModel: manager.updatableMachinesModel -// onCurrentIndexChanged: -// { -// if (model.getItem(currentIndex).id == "new" -// && model.getItem(currentIndex).type == "default_option") -// { -// manager.setResolveStrategy("machine", "new") -// } -// else -// { -// manager.setResolveStrategy("machine", "override") -// manager.setMachineToOverride(model.getItem(currentIndex).id) -// } -// } -// -// function machineVisibleChanged() -// { -// if (!visible) {return} -// -// currentIndex = 0 -// // If the project printer exists in Cura, set it as the default dropdown menu option. -// // No need to check object 0, which is the "Create new" option -// for (var i = 1; i < model.count; i++) -// { -// if (model.getItem(i).name == manager.machineName) -// { -// currentIndex = i -// break -// } -// } -// // The project printer does not exist in Cura. If there is at least one printer of the same -// // type, select the first one, else set the index to "Create new" -// if (currentIndex == 0 && model.count > 1) -// { -// currentIndex = 1 -// } -// } + machineName: manager.machineName + + isNetworkPrinter: false + isConnectedCloudPrinter: false + isCloudRegistered: false + isGroup: false + + onSelectPrinter: function(machine) + { + toggleContent(); + manager.setResolveStrategy("machine", "override") + manager.setMachineToOverride(machine.id) + machineSelector.machineName = machine.name + } } } diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 719c598469..59508dd102 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -56,6 +56,13 @@ Item Layout.fillWidth: true Layout.fillHeight: true + machineManager: Cura.MachineManager + onSelectPrinter: function(machine) + { + toggleContent(); + Cura.MachineManager.setActiveMachine(machine.id); + } + machineListModel: Cura.MachineListModel {} buttons: [ diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index a395ea3913..8bf5e3cf1d 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -11,12 +11,25 @@ Cura.ExpandablePopup { id: machineSelector - property bool isNetworkPrinter: Cura.MachineManager.activeMachineHasNetworkConnection - property bool isConnectedCloudPrinter: Cura.MachineManager.activeMachineHasCloudConnection - property bool isCloudRegistered: Cura.MachineManager.activeMachineHasCloudRegistration - property bool isGroup: Cura.MachineManager.activeMachineIsGroup + property Cura.MachineManager machineManager + property bool isNetworkPrinter: machineManager.activeMachineHasNetworkConnection + property bool isConnectedCloudPrinter: machineManager.activeMachineHasCloudConnection + property bool isCloudRegistered: machineManager.activeMachineHasCloudRegistration + property bool isGroup: machineManager.activeMachineIsGroup + property string machineName: { + if (isNetworkPrinter && machineManager.activeMachineNetworkGroupName != "") + { + return machineManager.activeMachineNetworkGroupName + } + if (machineManager.activeMachine != null) + { + return machineManager.activeMachine.name + } + return "" + } property alias machineListModel: machineSelectorList.model + property alias onSelectPrinter: machineSelectorList.onSelectPrinter property list buttons @@ -46,7 +59,7 @@ Cura.ExpandablePopup { if (Cura.API.account.isLoggedIn) { - if (Cura.MachineManager.activeMachineIsLinkedToCurrentAccount) + if (machineManager.activeMachineIsLinkedToCurrentAccount) { return catalog.i18nc("@status", "The cloud printer is offline. Please check if the printer is turned on and connected to the internet.") } @@ -59,7 +72,8 @@ Cura.ExpandablePopup { return catalog.i18nc("@status", "The cloud connection is currently unavailable. Please sign in to connect to the cloud printer.") } - } else + } + else { return catalog.i18nc("@status", "The cloud connection is currently unavailable. Please check your internet connection.") } @@ -81,18 +95,8 @@ Cura.ExpandablePopup headerItem: Cura.IconWithText { - text: - { - if (isNetworkPrinter && Cura.MachineManager.activeMachineNetworkGroupName != "") - { - return Cura.MachineManager.activeMachineNetworkGroupName - } - if(Cura.MachineManager.activeMachine != null) - { - return Cura.MachineManager.activeMachine.name - } - return "" - } + text: machineName + source: { if (isGroup) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 0fa19a51ff..1b0264929d 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -12,6 +12,7 @@ ListView id: listView section.property: "isOnline" property real contentHeight: childrenRect.height + property var onSelectPrinter ScrollBar.vertical: UM.ScrollBar { @@ -42,8 +43,7 @@ ListView listView.model.setShowCloudPrinters(true); break; case "MACHINE": - toggleContent() - Cura.MachineManager.setActiveMachine(model.id) + if (typeof onSelectPrinter === "function") onSelectPrinter(model); break; default: } From c23b019f169a2fd9e85fa8d2b5c040f6abcc5ecc Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 9 Nov 2022 15:23:00 +0100 Subject: [PATCH 047/185] Couple support roof/floor wall-count to parent setting by default. part of CURA-9350 --- resources/definitions/fdmprinter.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index eab18dd00d..5c82d04d61 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -4707,7 +4707,7 @@ "maximum_value_warning": "0 if (support_skip_some_zags and support_interface_pattern == 'zigzag') else 3", "maximum_value": "999999", "type": "int", - "value": "1 if (support_interface_pattern == 'zigzag') else 0", + "value": "support_interface_wall_count", "enabled": "support_interface_enable or support_meshes_present", "limit_to_extruder": "support_interface_extruder_nr", "settable_per_mesh": false, @@ -4722,7 +4722,7 @@ "maximum_value_warning": "0 if (support_skip_some_zags and support_interface_pattern == 'zigzag') else 3", "maximum_value": "999999", "type": "int", - "value": "1 if (support_interface_pattern == 'zigzag') else 0", + "value": "support_interface_wall_count", "enabled": "support_interface_enable or support_meshes_present", "limit_to_extruder": "support_interface_extruder_nr", "settable_per_mesh": false, From 948ac84070f55834c0461cea888935cc31bfbbed Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Nov 2022 15:49:04 +0100 Subject: [PATCH 048/185] Add create new button CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 97cd2eed51..ae4c44d0a6 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -122,6 +122,27 @@ UM.Dialog isCloudRegistered: false isGroup: false + buttons: [ + Cura.SecondaryButton + { + id: createNewPrinter + text: catalog.i18nc("@button", "Create new") + fixedWidthMode: true + width: parent.width - leftPadding * 1.5 + onClicked: + { + machineSelector.machineName = catalog.i18nc("@button", "Create new") + machineSelector.isNetworkPrinter = false + machineSelector.isConnectedCloudPrinter = false + machineSelector.isCloudRegistered = false + machineSelector.isGroup = false + + toggleContent() + manager.setResolveStrategy("machine", "new") + } + } + ] + onSelectPrinter: function(machine) { toggleContent(); From 95e0021cce61ca8287e1c7565447bd9d1855caac Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Nov 2022 15:55:48 +0100 Subject: [PATCH 049/185] Align dropdown in open project dialog CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 5 +++-- resources/qml/PrinterSelector/MachineSelector.qml | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index ae4c44d0a6..f452ab0252 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -111,9 +111,8 @@ UM.Dialog { id: machineSelector headerCornerSide: Cura.RoundedRectangle.Direction.All - width: UM.Theme.getSize("machine_selector_widget").width + width: parent.width height: parent.height - anchors.centerIn: parent machineListModel: manager.updatableMachinesModel machineName: manager.machineName @@ -122,6 +121,8 @@ UM.Dialog isCloudRegistered: false isGroup: false + minDropDownWidth: machineSelector.width + buttons: [ Cura.SecondaryButton { diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 8bf5e3cf1d..b8bacc8f36 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -198,11 +198,14 @@ Cura.ExpandablePopup } } + property int minDropDownWidth: UM.Theme.getSize("machine_selector_widget_content").width + property int maxDropDownHeight: UM.Theme.getSize("machine_selector_widget_content").height + contentItem: Item { id: popup - implicitWidth: Math.max(machineSelector.width, UM.Theme.getSize("machine_selector_widget_content").width) - implicitHeight: Math.min(machineSelectorList.contentHeight + separator.height + buttonRow.height, UM.Theme.getSize("machine_selector_widget_content").height) //Maximum height is the theme entry. + implicitWidth: Math.max(machineSelector.width, minDropDownWidth) + implicitHeight: Math.min(machineSelectorList.contentHeight + separator.height + buttonRow.height, maxDropDownHeight) //Maximum height is the theme entry. MachineSelectorList { id: machineSelectorList From 8ee5bc2bd46804aaae92df87d965007efd1f08fa Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Nov 2022 16:04:39 +0100 Subject: [PATCH 050/185] Remove column with single child Just rendering the single child produces the same result CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 397 +++++++++++++------------- 1 file changed, 196 insertions(+), 201 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index f452ab0252..23f9231230 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -70,240 +70,235 @@ UM.Dialog Column { id: contentColumn - width: parent.width - scrollbar.width + width: parent.width - scrollbar.width - UM.Theme.getSize("default_margin").width height: childrenRect.height - Column + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + + WorkspaceSection { - width: parent.width - UM.Theme.getSize("default_margin").width - height: childrenRect.height - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("default_margin").width - rightPadding: UM.Theme.getSize("default_margin").width - - WorkspaceSection + id: printerSection + title: catalog.i18nc("@action:label", "Printer settings") + iconSource: UM.Theme.getIcon("Printer") + content: Column { - id: printerSection - title: catalog.i18nc("@action:label", "Printer settings") - iconSource: UM.Theme.getIcon("Printer") - content: Column + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + + WorkspaceRow { - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - - WorkspaceRow - { - leftLabelText: catalog.i18nc("@action:label", "Type") - rightLabelText: manager.machineType - } - - WorkspaceRow - { - leftLabelText: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name") - rightLabelText: manager.machineName - } + leftLabelText: catalog.i18nc("@action:label", "Type") + rightLabelText: manager.machineType } - comboboxTitle: catalog.i18nc("@action:label", "Open With") - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") - comboboxVisible: workspaceDialog.visible && manager.updatableMachinesModel.count > 1 - combobox: Cura.MachineSelector + WorkspaceRow { - id: machineSelector - headerCornerSide: Cura.RoundedRectangle.Direction.All - width: parent.width - height: parent.height - machineListModel: manager.updatableMachinesModel - machineName: manager.machineName - - isNetworkPrinter: false - isConnectedCloudPrinter: false - isCloudRegistered: false - isGroup: false - - minDropDownWidth: machineSelector.width - - buttons: [ - Cura.SecondaryButton - { - id: createNewPrinter - text: catalog.i18nc("@button", "Create new") - fixedWidthMode: true - width: parent.width - leftPadding * 1.5 - onClicked: - { - machineSelector.machineName = catalog.i18nc("@button", "Create new") - machineSelector.isNetworkPrinter = false - machineSelector.isConnectedCloudPrinter = false - machineSelector.isCloudRegistered = false - machineSelector.isGroup = false - - toggleContent() - manager.setResolveStrategy("machine", "new") - } - } - ] - - onSelectPrinter: function(machine) - { - toggleContent(); - manager.setResolveStrategy("machine", "override") - manager.setMachineToOverride(machine.id) - machineSelector.machineName = machine.name - } + leftLabelText: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name") + rightLabelText: manager.machineName } } - WorkspaceSection + comboboxTitle: catalog.i18nc("@action:label", "Open With") + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") + comboboxVisible: workspaceDialog.visible && manager.updatableMachinesModel.count > 1 + combobox: Cura.MachineSelector { - id: profileSection - title: catalog.i18nc("@action:label", "Profile settings") - iconSource: UM.Theme.getIcon("Sliders") - content: Column - { - id: profileSettingsValuesTable - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + id: machineSelector + headerCornerSide: Cura.RoundedRectangle.Direction.All + width: parent.width + height: parent.height + machineListModel: manager.updatableMachinesModel + machineName: manager.machineName - WorkspaceRow + isNetworkPrinter: false + isConnectedCloudPrinter: false + isCloudRegistered: false + isGroup: false + + minDropDownWidth: machineSelector.width + + buttons: [ + Cura.SecondaryButton + { + id: createNewPrinter + text: catalog.i18nc("@button", "Create new") + fixedWidthMode: true + width: parent.width - leftPadding * 1.5 + onClicked: + { + machineSelector.machineName = catalog.i18nc("@button", "Create new") + machineSelector.isNetworkPrinter = false + machineSelector.isConnectedCloudPrinter = false + machineSelector.isCloudRegistered = false + machineSelector.isGroup = false + + toggleContent() + manager.setResolveStrategy("machine", "new") + } + } + ] + + onSelectPrinter: function(machine) + { + toggleContent(); + manager.setResolveStrategy("machine", "override") + manager.setMachineToOverride(machine.id) + machineSelector.machineName = machine.name + } + } + } + + WorkspaceSection + { + id: profileSection + title: catalog.i18nc("@action:label", "Profile settings") + iconSource: UM.Theme.getIcon("Sliders") + content: Column + { + id: profileSettingsValuesTable + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + + WorkspaceRow + { + leftLabelText: catalog.i18nc("@action:label", "Name") + rightLabelText: manager.qualityName + } + + WorkspaceRow + { + leftLabelText: catalog.i18nc("@action:label", "Intent") + rightLabelText: manager.intentName + } + + WorkspaceRow + { + leftLabelText: catalog.i18nc("@action:label", "Not in profile") + rightLabelText: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) + visible: manager.numUserSettings != 0 + } + + WorkspaceRow + { + leftLabelText: catalog.i18nc("@action:label", "Derivative from") + rightLabelText: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) + visible: manager.numSettingsOverridenByQualityChanges != 0 + } + } + + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") + comboboxVisible: manager.qualityChangesConflict + combobox: Cura.ComboBox + { + id: qualityChangesResolveComboBox + model: resolveStrategiesModel + textRole: "label" + visible: manager.qualityChangesConflict + + // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded + currentIndex: + { + currentIndex = 0 + } + + onCurrentIndexChanged: + { + manager.setResolveStrategy("quality_changes", resolveStrategiesModel.get(currentIndex).key) + } + } + } + + WorkspaceSection + { + id: materialSection + title: catalog.i18nc("@action:label", "Material settings") + iconSource: UM.Theme.getIcon("Spool") + content: Column + { + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + + Repeater + { + model: manager.materialLabels + delegate: WorkspaceRow { leftLabelText: catalog.i18nc("@action:label", "Name") - rightLabelText: manager.qualityName - } - - WorkspaceRow - { - leftLabelText: catalog.i18nc("@action:label", "Intent") - rightLabelText: manager.intentName - } - - WorkspaceRow - { - leftLabelText: catalog.i18nc("@action:label", "Not in profile") - rightLabelText: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", manager.numUserSettings).arg(manager.numUserSettings) - visible: manager.numUserSettings != 0 - } - - WorkspaceRow - { - leftLabelText: catalog.i18nc("@action:label", "Derivative from") - rightLabelText: catalog.i18ncp("@action:label", "%1, %2 override", "%1, %2 overrides", manager.numSettingsOverridenByQualityChanges).arg(manager.qualityType).arg(manager.numSettingsOverridenByQualityChanges) - visible: manager.numSettingsOverridenByQualityChanges != 0 - } - } - - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") - comboboxVisible: manager.qualityChangesConflict - combobox: Cura.ComboBox - { - id: qualityChangesResolveComboBox - model: resolveStrategiesModel - textRole: "label" - visible: manager.qualityChangesConflict - - // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded - currentIndex: - { - currentIndex = 0 - } - - onCurrentIndexChanged: - { - manager.setResolveStrategy("quality_changes", resolveStrategiesModel.get(currentIndex).key) + rightLabelText: modelData } } } - WorkspaceSection - { - id: materialSection - title: catalog.i18nc("@action:label", "Material settings") - iconSource: UM.Theme.getIcon("Spool") - content: Column - { - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") + comboboxVisible: manager.materialConflict - Repeater - { - model: manager.materialLabels - delegate: WorkspaceRow - { - leftLabelText: catalog.i18nc("@action:label", "Name") - rightLabelText: modelData - } - } + combobox: Cura.ComboBox + { + id: materialResolveComboBox + model: resolveStrategiesModel + textRole: "label" + visible: manager.materialConflict + + // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded + currentIndex: + { + currentIndex = 0 } - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") - comboboxVisible: manager.materialConflict - - combobox: Cura.ComboBox + onCurrentIndexChanged: { - id: materialResolveComboBox - model: resolveStrategiesModel - textRole: "label" - visible: manager.materialConflict - - // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded - currentIndex: - { - currentIndex = 0 - } - - onCurrentIndexChanged: - { - manager.setResolveStrategy("material", resolveStrategiesModel.get(currentIndex).key) - } + manager.setResolveStrategy("material", resolveStrategiesModel.get(currentIndex).key) } } + } - WorkspaceSection + WorkspaceSection + { + id: visibilitySection + title: catalog.i18nc("@action:label", "Setting visibility") + iconSource: UM.Theme.getIcon("Eye") + content: Column { - id: visibilitySection - title: catalog.i18nc("@action:label", "Setting visibility") - iconSource: UM.Theme.getIcon("Eye") - content: Column + spacing: UM.Theme.getSize("default_margin").height + leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width + bottomPadding: UM.Theme.getSize("narrow_margin").height + + WorkspaceRow { - spacing: UM.Theme.getSize("default_margin").height - leftPadding: UM.Theme.getSize("medium_button_icon").width + UM.Theme.getSize("default_margin").width - bottomPadding: UM.Theme.getSize("narrow_margin").height + leftLabelText: catalog.i18nc("@action:label", "Mode") + rightLabelText: manager.activeMode + } - WorkspaceRow - { - leftLabelText: catalog.i18nc("@action:label", "Mode") - rightLabelText: manager.activeMode - } - - WorkspaceRow - { - leftLabelText: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) - rightLabelText: manager.activeMode - visible: manager.hasVisibleSettingsField - } + WorkspaceRow + { + leftLabelText: catalog.i18nc("@action:label", "%1 out of %2" ).arg(manager.numVisibleSettings).arg(manager.totalNumberOfSettings) + rightLabelText: manager.activeMode + visible: manager.hasVisibleSettingsField } } + } - Row + Row + { + id: clearBuildPlateWarning + width: parent.width + height: childrenRect.height + spacing: UM.Theme.getSize("default_margin").width + visible: manager.hasObjectsOnPlate + + UM.ColorImage { - id: clearBuildPlateWarning - width: parent.width - height: childrenRect.height - spacing: UM.Theme.getSize("default_margin").width - visible: manager.hasObjectsOnPlate - - UM.ColorImage - { - width: warningLabel.height - height: width - source: UM.Theme.getIcon("Information") - color: UM.Theme.getColor("text") - } - UM.Label - { - id: warningLabel - text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") - } + width: warningLabel.height + height: width + source: UM.Theme.getIcon("Information") + color: UM.Theme.getColor("text") + } + UM.Label + { + id: warningLabel + text: catalog.i18nc("@action:warning", "Loading a project will clear all models on the build plate.") } } } From 0222c79f59f6f2a568ceb86405b06b837a9c647e Mon Sep 17 00:00:00 2001 From: Rijk van Manen Date: Wed, 9 Nov 2022 16:26:56 +0100 Subject: [PATCH 051/185] increase initial layer skin flow For large prints the initial layer skin flow turns out to be too low. PP-275 --- resources/definitions/ultimaker.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index d2787afe23..283e17cc5d 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -93,7 +93,7 @@ "skin_angles": { "value": "[] if infill_pattern not in ['cross', 'cross_3d'] else [20, 110]" }, "skin_edge_support_thickness": { "value": "4 * layer_height if infill_sparse_density < 30 else 0" }, "skin_material_flow": { "value": "0.95 * material_flow" }, - "skin_material_flow_layer_0": { "value": "0.80 * material_flow_layer_0" }, + "skin_material_flow_layer_0": { "value": "0.85 * material_flow_layer_0" }, "skin_monotonic" : { "value": "roofing_layer_count == 0" }, "speed_equalize_flow_width_factor": { "value": "110.0" }, "speed_layer_0": { "value": "min(30, layer_height / layer_height_0 * speed_wall_0)" }, From 79a7b1e0649b71de2dd5d41b97ad9ec7ce42541e Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Nov 2022 16:56:07 +0100 Subject: [PATCH 052/185] Round width to prevent drawing text on non-integer offsets Contribution from @fieldOfView CURA-9424 --- plugins/PrepareStage/PrepareMenu.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 59508dd102..3f24d619ac 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -75,7 +75,7 @@ Item // The maximum width of the button is half of the total space, minus the padding of the parent, the left // padding of the component and half the spacing because of the space between buttons. fixedWidthMode: true - width: parent.width / 2 - leftPadding * 1.5 + width: Math.round(parent.width / 2 - leftPadding * 1.5) onClicked: { toggleContent() From 06a28861396a46800916c9eeb45b05e45be15661 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Nov 2022 17:11:31 +0100 Subject: [PATCH 053/185] Clean up section property logic CURA-9424 --- cura/Machines/Models/MachineListModel.py | 41 +++++++++++-------- .../PrinterSelector/MachineSelectorList.qml | 12 +++++- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 04faa4d1fc..cb7c3b5998 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -130,17 +130,21 @@ class MachineListModel(ListModel): if len(abstract_machine_stacks) > 0: if self._show_cloud_printers: - self.appendItem({"componentType": "HIDE_BUTTON", - "isOnline": True, - "isAbstractMachine": False, - "machineCount": 0 - }) + self.appendItem({ + "componentType": "HIDE_BUTTON", + "isOnline": True, + "isAbstractMachine": False, + "machineCount": 0, + "catergory": "connected", + }) else: - self.appendItem({"componentType": "SHOW_BUTTON", - "isOnline": True, - "isAbstractMachine": False, - "machineCount": 0 - }) + self.appendItem({ + "componentType": "SHOW_BUTTON", + "isOnline": True, + "isAbstractMachine": False, + "machineCount": 0, + "catergory": "connected", + }) for stack in other_machine_stacks: self.addItem(stack, False) @@ -150,11 +154,12 @@ class MachineListModel(ListModel): return self.appendItem({ - "componentType": "MACHINE", - "name": container_stack.getName(), - "id": container_stack.getId(), - "metadata": container_stack.getMetaData().copy(), - "isOnline": is_online, - "isAbstractMachine": parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)), - "machineCount": machine_count, - }) + "componentType": "MACHINE", + "name": container_stack.getName(), + "id": container_stack.getId(), + "metadata": container_stack.getMetaData().copy(), + "isOnline": is_online, + "isAbstractMachine": parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)), + "machineCount": machine_count, + "catergory": "connected" if is_online else "other", + }) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index 1b0264929d..b3a65da7da 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -10,7 +10,7 @@ import Cura 1.0 as Cura ListView { id: listView - section.property: "isOnline" + section.property: "category" property real contentHeight: childrenRect.height property var onSelectPrinter @@ -21,7 +21,15 @@ ListView section.delegate: UM.Label { - text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Other printers") + text: { + switch (section) + { + case "connected": + return catalog.i18nc("@label", "Connected printers"); + case "other": + return catalog.i18nc("@label", "Other printers"); + } + } height: UM.Theme.getSize("action_button").height width: parent.width - scrollBar.width leftPadding: UM.Theme.getSize("default_margin").width From 27267deb22dd02b7d5ce93f79f7c65d9dd61938c Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Nov 2022 17:16:47 +0100 Subject: [PATCH 054/185] Fix clicking `PrepareMenu` CURA-9424 --- plugins/PrepareStage/PrepareMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 3f24d619ac..12db91635b 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -78,7 +78,7 @@ Item width: Math.round(parent.width / 2 - leftPadding * 1.5) onClicked: { - toggleContent() + machineSelection.toggleContent() Cura.Actions.addMachine.trigger() } }, @@ -94,7 +94,7 @@ Item width: parent.width / 2 - rightPadding * 1.5 onClicked: { - toggleContent() + machineSelection.toggleContent() Cura.Actions.configureMachines.trigger() } } From 0c79ec738e9eb95cd1de304dcea24ccba332bf36 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Nov 2022 23:05:06 +0100 Subject: [PATCH 055/185] Fix show/hide button in WorkSpaceDialog printer selector CURA-9424 --- cura/Machines/Models/MachineListModel.py | 29 ++++++++++++------------ plugins/3MFReader/WorkspaceDialog.py | 4 ++-- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index cb7c3b5998..82b889ac4b 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -29,11 +29,11 @@ class MachineListModel(ListModel): IsAbstractMachineRole = Qt.ItemDataRole.UserRole + 7 ComponentTypeRole = Qt.ItemDataRole.UserRole + 8 - def __init__(self, parent: Optional[QObject] = None, machines: List[GlobalStack] = None, listenToChanges: bool = True) -> None: + def __init__(self, parent: Optional[QObject] = None, machines_filter: Optional[List[GlobalStack]] = None) -> None: super().__init__(parent) self._show_cloud_printers = False - self._machines = machines + self._machines_filter = machines_filter self._catalog = i18nCatalog("cura") @@ -51,11 +51,10 @@ class MachineListModel(ListModel): self._change_timer.setSingleShot(True) self._change_timer.timeout.connect(self._update) - if listenToChanges: - CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged) - CuraContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerChanged) - CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) - self._updateDelayed() + CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged) + CuraContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerChanged) + CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) + self._updateDelayed() showCloudPrintersChanged = pyqtSignal(bool) @@ -80,19 +79,13 @@ class MachineListModel(ListModel): self._change_timer.start() def _getMachineStacks(self) -> List[ContainerStack]: - if self._machines is not None: - return self._machines return CuraContainerRegistry.getInstance().findContainerStacks(type="machine") def _getAbstractMachineStacks(self) -> List[ContainerStack]: - if self._machines is not None: - return list(filter(lambda machine: parseBool(machine.getMetaDataEntry("is_abstract_machine", False)), self._machines)) return CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") - def update(self, machines: List[ContainerStack] = None) -> None: - if machines is not None: - self._machines = machines - + def set_machines_filter(self, machines_filter: Optional[List[GlobalStack]]) -> None: + self._machines_filter = machines_filter self._update() def _update(self) -> None: @@ -106,6 +99,12 @@ class MachineListModel(ListModel): abstract_machine_stacks = self._getAbstractMachineStacks() abstract_machine_stacks.sort(key = lambda machine: machine.getName().upper(), reverse = True) + + if self._machines_filter is not None: + filter_ids = [machine_filter.id for machine_filter in self._machines_filter] + other_machine_stacks = [machine for machine in other_machine_stacks if machine.id in filter_ids] + abstract_machine_stacks = [machine for machine in abstract_machine_stacks if machine.id in filter_ids] + for abstract_machine in abstract_machine_stacks: definition_id = abstract_machine.definition.getId() online_machine_stacks = machines_manager.getMachinesWithDefinition(definition_id, online_only = True) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 9e0c8158cd..da7b8737e3 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -62,7 +62,7 @@ class WorkspaceDialog(QObject): self._extruders = [] self._objects_on_plate = False self._is_printer_group = False - self._updatable_machines_model = MachineListModel(self, listenToChanges=False) + self._updatable_machines_model = MachineListModel(self) self._missing_package_metadata: List[Dict[str, str]] = [] self._plugin_registry: PluginRegistry = CuraApplication.getInstance().getPluginRegistry() self._install_missing_package_dialog: Optional[QObject] = None @@ -164,7 +164,7 @@ class WorkspaceDialog(QObject): return cast(MachineListModel, self._updatable_machines_model) def setUpdatableMachines(self, updatable_machines: List[GlobalStack]) -> None: - self._updatable_machines_model.update(updatable_machines) + self._updatable_machines_model.set_machines_filter(updatable_machines) self.updatableMachinesChanged.emit() @pyqtProperty(str, notify=qualityTypeChanged) From c59f5a5c00f43687b8d477b827758d1f0a2168e1 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 10 Nov 2022 14:48:38 +0100 Subject: [PATCH 056/185] Add tooltip in WorkspaceDialog over the printer selection drop down. CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 4 +- plugins/3MFReader/WorkspaceSection.qml | 98 +++++++++++++++++--------- 2 files changed, 64 insertions(+), 38 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 23f9231230..7417a58126 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -101,7 +101,7 @@ UM.Dialog } comboboxTitle: catalog.i18nc("@action:label", "Open With") - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?") + comboboxTooltipText: catalog.i18nc("@info:tooltip", "Printer settings will be updated to match the settings saved with the project.") comboboxVisible: workspaceDialog.visible && manager.updatableMachinesModel.count > 1 combobox: Cura.MachineSelector { @@ -188,7 +188,6 @@ UM.Dialog } } - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the profile be resolved?") comboboxVisible: manager.qualityChangesConflict combobox: Cura.ComboBox { @@ -231,7 +230,6 @@ UM.Dialog } } - comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the material be resolved?") comboboxVisible: manager.materialConflict combobox: Cura.ComboBox diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index 211d8776f3..b11cc04cd7 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -23,41 +23,6 @@ Item height: childrenRect.height anchors.leftMargin: UM.Theme.getSize("default_margin").width - UM.TooltipArea - { - id: comboboxTooltip - width: (parent.width / 2.5) | 0 - height: visible ? UM.Theme.getSize("default_margin").height : 0 - anchors.top: parent.top - anchors.right: parent.right - anchors.rightMargin: UM.Theme.getSize("default_margin").width - - text: comboboxTooltipText - visible: comboboxVisible - - UM.Label - { - id: comboboxLabel - anchors.top: parent.top - anchors.left: parent.left - anchors.topMargin: UM.Theme.getSize("default_margin").height - visible: comboboxVisible && text != "" - text: "" - font: UM.Theme.getFont("default_bold") - } - - Loader - { - id: comboboxLoader - width: parent.width - height: UM.Theme.getSize("button").height - anchors.top: comboboxLabel.bottom - anchors.topMargin: UM.Theme.getSize("default_margin").height - anchors.left: parent.left - sourceComponent: combobox - } - } - Row { id: sectionTitleRow @@ -82,6 +47,69 @@ Item } } + Item + { + id: comboboxTooltip + width: (parent.width / 2.5) | 0 + height: visible ? UM.Theme.getSize("default_margin").height : 0 + anchors.top: parent.top + anchors.right: parent.right + anchors.rightMargin: UM.Theme.getSize("default_margin").width + visible: comboboxVisible + + UM.Label + { + id: comboboxLabel + anchors.top: parent.top + anchors.left: parent.left + anchors.topMargin: UM.Theme.getSize("default_margin").height + visible: comboboxVisible && text != "" + text: "" + font: UM.Theme.getFont("default_bold") + } + + Loader + { + id: comboboxLoader + width: parent.width + height: UM.Theme.getSize("button").height + anchors.top: comboboxLabel.bottom + anchors.topMargin: UM.Theme.getSize("default_margin").height + anchors.left: parent.left + sourceComponent: combobox + } + + MouseArea + { + id: helpIconMouseArea + anchors.right: parent.right + anchors.verticalCenter: comboboxLabel.verticalCenter + width: childrenRect.width + height: childrenRect.height + hoverEnabled: true + + UM.ColorImage + { + width: UM.Theme.getSize("section_icon").width + height: width + + visible: comboboxTooltipText != "" + source: UM.Theme.getIcon("Help") + + UM.ToolTip + { + text: comboboxTooltipText + visible: helpIconMouseArea.containsMouse + targetPoint: Qt.point(parent.x + Math.round(parent.width / 2), parent.y) + x: 0 + y: parent.y + parent.height + UM.Theme.getSize("default_margin").height + width: UM.Theme.getSize("tooltip").width + } + } + } + } + + Loader { width: parent.width From bbadc9c8877e24ce6c1c797946e331e0577749cb Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 11 Nov 2022 13:44:37 +0100 Subject: [PATCH 057/185] Apply suggestions from code review Co-authored-by: Jelle Spijker --- cura/Machines/Models/MachineListModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 82b889ac4b..b9ed51ac10 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -79,7 +79,7 @@ class MachineListModel(ListModel): self._change_timer.start() def _getMachineStacks(self) -> List[ContainerStack]: - return CuraContainerRegistry.getInstance().findContainerStacks(type="machine") + return CuraContainerRegistry.getInstance().findContainerStacks(type = "machine") def _getAbstractMachineStacks(self) -> List[ContainerStack]: return CuraContainerRegistry.getInstance().findContainerStacks(is_abstract_machine = "True") From 1d34cd01c1f9c9b3e747a9819f7d843019cd0c49 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 11 Nov 2022 16:34:08 +0100 Subject: [PATCH 058/185] Removed unused UpdatableMachinesModel.py CURA-9424 --- plugins/3MFReader/UpdatableMachinesModel.py | 43 --------------------- 1 file changed, 43 deletions(-) delete mode 100644 plugins/3MFReader/UpdatableMachinesModel.py diff --git a/plugins/3MFReader/UpdatableMachinesModel.py b/plugins/3MFReader/UpdatableMachinesModel.py deleted file mode 100644 index 9d6eee6c3e..0000000000 --- a/plugins/3MFReader/UpdatableMachinesModel.py +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) 2020 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. - -from typing import Dict, List - -from PyQt6.QtCore import Qt - -from UM.Qt.ListModel import ListModel -from cura.Settings.GlobalStack import GlobalStack - -create_new_list_item = { - "id": "new", - "name": "Create new", - "displayName": "Create new", - "type": "default_option" # to make sure we are not mixing the "Create new" option with a printer with id "new" -} # type: Dict[str, str] - - -class UpdatableMachinesModel(ListModel): - """Model that holds cura packages. - - By setting the filter property the instances held by this model can be changed. - """ - - def __init__(self, parent = None) -> None: - super().__init__(parent) - - self.addRoleName(Qt.ItemDataRole.UserRole + 1, "id") - self.addRoleName(Qt.ItemDataRole.UserRole + 2, "name") - self.addRoleName(Qt.ItemDataRole.UserRole + 3, "displayName") - self.addRoleName(Qt.ItemDataRole.UserRole + 4, "type") # Either "default_option" or "machine" - - def update(self, machines: List[GlobalStack]) -> None: - items = [create_new_list_item] # type: List[Dict[str, str]] - - for machine in sorted(machines, key = lambda printer: printer.name): - items.append({ - "id": machine.id, - "name": machine.name, - "displayName": "Update " + machine.name, - "type": "machine" - }) - self.setItems(items) From 44d9df57e499eb3cb4489f06cb706c3128fa2e6c Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 11 Nov 2022 16:34:22 +0100 Subject: [PATCH 059/185] Update drop down to show correct printer icons in header CURA-9424 --- plugins/3MFReader/WorkspaceDialog.py | 22 ++++++++++++++++++++++ plugins/3MFReader/WorkspaceDialog.qml | 10 ++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index da7b8737e3..ebf389b396 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -66,6 +66,8 @@ class WorkspaceDialog(QObject): self._missing_package_metadata: List[Dict[str, str]] = [] self._plugin_registry: PluginRegistry = CuraApplication.getInstance().getPluginRegistry() self._install_missing_package_dialog: Optional[QObject] = None + self._is_abstract_machine = False + self._is_online_machine = False machineConflictChanged = pyqtSignal() qualityChangesConflictChanged = pyqtSignal() @@ -79,6 +81,8 @@ class WorkspaceDialog(QObject): intentNameChanged = pyqtSignal() machineNameChanged = pyqtSignal() updatableMachinesChanged = pyqtSignal() + isAbstractMachineChanged = pyqtSignal() + isOnlineChanged = pyqtSignal() materialLabelsChanged = pyqtSignal() objectsOnPlateChanged = pyqtSignal() numUserSettingsChanged = pyqtSignal() @@ -167,6 +171,24 @@ class WorkspaceDialog(QObject): self._updatable_machines_model.set_machines_filter(updatable_machines) self.updatableMachinesChanged.emit() + @pyqtProperty(bool, notify = isAbstractMachineChanged) + def isAbstractMachine(self) -> bool: + return self._is_abstract_machine + + @pyqtSlot(bool) + def setIsAbstractMachine(self, is_abstract_machine: bool) -> None: + self._is_abstract_machine = is_abstract_machine + self.isAbstractMachineChanged.emit() + + @pyqtProperty(bool, notify = isOnlineChanged) + def isOnline(self) -> bool: + return self._is_online_machine + + @pyqtSlot(bool) + def setIsNetworkedMachine(self, is_online_machine: bool) -> None: + self._is_online_machine = is_online_machine + self.isOnlineChanged.emit() + @pyqtProperty(str, notify=qualityTypeChanged) def qualityType(self) -> str: return self._quality_type diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 7417a58126..3d22e18874 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -112,10 +112,10 @@ UM.Dialog machineListModel: manager.updatableMachinesModel machineName: manager.machineName - isNetworkPrinter: false isConnectedCloudPrinter: false isCloudRegistered: false - isGroup: false + isNetworkPrinter: manager.isOnline + isGroup: manager.isAbstractMachine minDropDownWidth: machineSelector.width @@ -129,10 +129,10 @@ UM.Dialog onClicked: { machineSelector.machineName = catalog.i18nc("@button", "Create new") - machineSelector.isNetworkPrinter = false + manager.setIsAbstractMachine(false) + manager.setIsNetworkedMachine(false) machineSelector.isConnectedCloudPrinter = false machineSelector.isCloudRegistered = false - machineSelector.isGroup = false toggleContent() manager.setResolveStrategy("machine", "new") @@ -145,6 +145,8 @@ UM.Dialog toggleContent(); manager.setResolveStrategy("machine", "override") manager.setMachineToOverride(machine.id) + manager.setIsAbstractMachine(machine.isAbstractMachine) + manager.setIsNetworkedMachine(machine.isOnline) machineSelector.machineName = machine.name } } From 62274c4dacd2a938cac4ef477b502776d32c4686 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 11 Nov 2022 17:04:39 +0100 Subject: [PATCH 060/185] Revert Some of "Fix show/hide button in WorkSpaceDialog printer selector" This reverts commit 0c79ec73 --- cura/Machines/Models/MachineListModel.py | 11 ++++++----- plugins/3MFReader/WorkspaceDialog.py | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index b9ed51ac10..d1aa22cfcd 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -29,7 +29,7 @@ class MachineListModel(ListModel): IsAbstractMachineRole = Qt.ItemDataRole.UserRole + 7 ComponentTypeRole = Qt.ItemDataRole.UserRole + 8 - def __init__(self, parent: Optional[QObject] = None, machines_filter: Optional[List[GlobalStack]] = None) -> None: + def __init__(self, parent: Optional[QObject] = None, machines_filter: List[GlobalStack] = None, listenToChanges: bool = True) -> None: super().__init__(parent) self._show_cloud_printers = False @@ -51,10 +51,11 @@ class MachineListModel(ListModel): self._change_timer.setSingleShot(True) self._change_timer.timeout.connect(self._update) - CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged) - CuraContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerChanged) - CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) - self._updateDelayed() + if listenToChanges: + CuraContainerRegistry.getInstance().containerAdded.connect(self._onContainerChanged) + CuraContainerRegistry.getInstance().containerMetaDataChanged.connect(self._onContainerChanged) + CuraContainerRegistry.getInstance().containerRemoved.connect(self._onContainerChanged) + self._updateDelayed() showCloudPrintersChanged = pyqtSignal(bool) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index ebf389b396..1cc134b5e5 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -62,7 +62,7 @@ class WorkspaceDialog(QObject): self._extruders = [] self._objects_on_plate = False self._is_printer_group = False - self._updatable_machines_model = MachineListModel(self) + self._updatable_machines_model = MachineListModel(self, listenToChanges=False) self._missing_package_metadata: List[Dict[str, str]] = [] self._plugin_registry: PluginRegistry = CuraApplication.getInstance().getPluginRegistry() self._install_missing_package_dialog: Optional[QObject] = None @@ -168,7 +168,7 @@ class WorkspaceDialog(QObject): return cast(MachineListModel, self._updatable_machines_model) def setUpdatableMachines(self, updatable_machines: List[GlobalStack]) -> None: - self._updatable_machines_model.set_machines_filter(updatable_machines) + self._updatable_machines_model.update(updatable_machines) self.updatableMachinesChanged.emit() @pyqtProperty(bool, notify = isAbstractMachineChanged) From 57e1c7a4ce854460675a681e5b6f0eca60a065df Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 11 Nov 2022 17:08:45 +0100 Subject: [PATCH 061/185] Commit suggestion by Jelle CURA-9424 --- cura/Machines/Models/MachineListModel.py | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index d1aa22cfcd..03c3fbdcaa 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -129,22 +129,13 @@ class MachineListModel(ListModel): other_machine_stacks.remove(stack) if len(abstract_machine_stacks) > 0: - if self._show_cloud_printers: - self.appendItem({ - "componentType": "HIDE_BUTTON", - "isOnline": True, - "isAbstractMachine": False, - "machineCount": 0, - "catergory": "connected", - }) - else: - self.appendItem({ - "componentType": "SHOW_BUTTON", - "isOnline": True, - "isAbstractMachine": False, - "machineCount": 0, - "catergory": "connected", - }) + self.appendItem({ + "componentType": "HIDE_BUTTON" if self._show_cloud_printers else "SHOW_BUTTON", + "isOnline": True, + "isAbstractMachine": False, + "machineCount": 0, + "catergory": "connected", + }) for stack in other_machine_stacks: self.addItem(stack, False) From 0bae61b97a2138376fcba70ae10993672d1895a9 Mon Sep 17 00:00:00 2001 From: NilsRo Date: Sat, 12 Nov 2022 10:32:31 +0100 Subject: [PATCH 062/185] Update anycubic_i3_mega_s.def.json Disable lin. adv. if set from ealier print and not in GCODE --- resources/definitions/anycubic_i3_mega_s.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/anycubic_i3_mega_s.def.json b/resources/definitions/anycubic_i3_mega_s.def.json index 54fa459946..21919af4e1 100644 --- a/resources/definitions/anycubic_i3_mega_s.def.json +++ b/resources/definitions/anycubic_i3_mega_s.def.json @@ -29,7 +29,7 @@ "machine_center_is_zero": { "default_value": false }, "gantry_height": { "value": "0" }, "machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" }, - "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:filament_cost;{filament_cost}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X50 F500 ; wipe away from the filament line\nG1 X100 F9000 ; Quickly wipe away from the filament line" }, + "machine_start_gcode": { "default_value": ";Profil Homepage: https://github.com/NilsRo/Cura_Anycubic_MegaS_Profile\n\n;Slicer Information - (Support for OctoPrint Slicer Estimator)\n;Slicer info:material_guid;{material_guid}\n;Slicer info:material_id;{material_id}\n;Slicer info:material_brand;{material_brand}\n;Slicer info:material_name;{material_name}\n;Slicer info:filament_cost;{filament_cost}\n;Slicer info:material_bed_temperature;{material_bed_temperature}\n;Slicer info:material_bed_temperature_layer_0;{material_bed_temperature_layer_0}\n;Slicer info:material_print_temperature;{material_print_temperature}\n;Slicer info:material_print_temperature_layer_0;{material_print_temperature_layer_0}\n;Slicer info:material_flow;{material_flow}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:machine_nozzle_size;{machine_nozzle_size}\n;Slicer info:wall_thickness;{wall_thickness}\n;Slicer info:speed_print;{speed_print}\n;Slicer info:speed_topbottom;{speed_topbottom}\n;Slicer info:travel_speed;{travel_speed}\n;Slicer info:support;{support}\n;Slicer info:retraction_speed;{retraction_speed}\n;Slicer info:retraction_amount;{retraction_amount}\n;Slicer info:layer_height;{layer_height}\n;Slicer info:infill_pattern;{infill_pattern}\n;Slicer info:infill_sparse_density;{infill_sparse_density}\n;Slicer info:cool_fan_enabled;{cool_fan_enabled}\n;Slicer info:cool_fan_speed;{cool_fan_speed}\n;Slicer info:sliced_at;{day} {date} {time}\nG21 ; metric values \nG90 ; absolute positioning \nM82 ; set extruder to absolute mode \nM900 K0 ; disable lin. adv. if not set in GCODE\nM107 ; start with the fan off \nM140 S{material_bed_temperature_layer_0} ; Start heating the bed \nG4 S60 ; wait 1 minute \nM104 S{material_print_temperature_layer_0} ; start heating the hot end \nM190 S{material_bed_temperature_layer_0} ; wait for bed \nM109 S{material_print_temperature_layer_0} ; wait for hotend \nM300 S1000 P500 ; BEEP heating done \nG28 X0 Y10 Z0 ; move X/Y to min endstops \nM420 S1 ; Enable leveling \nM420 Z2.0 ; Set leveling fading height to 2 mm \nG0 Z0.15 ; lift nozzle a bit \nG92 E0 ; zero the extruded length \nG1 X50 E20 F500 ; Extrude 20mm of filament in a 5cm line. \nG92 E0 ; zero the extruded length again \nG1 E-2 F500 ; Retract a little \nG1 X50 F500 ; wipe away from the filament line\nG1 X100 F9000 ; Quickly wipe away from the filament line" }, "machine_end_gcode": { "default_value": "M104 S0 ; Extruder off \nM140 S0 ; Heatbed off \nM107 ; Fan off \nG91 ; relative positioning \nG1 E-5 F300 ; retract a little \nG1 Z+10 E-5 ; X-20 Y-20 F{travel_xy_speed} ; lift print head \nG28 X0 Y0 ; homing \nG1 Y180 F2000 ; reset feedrate \nM84 ; disable stepper motors \nG90 ; absolute positioning \nM300 S440 P200 ; Make Print Completed Tones \nM300 S660 P250 ; beep \nM300 S880 P300 ; beep" }, "machine_max_acceleration_x": { "value": 3000 }, From 9d690da9d5c254225981efa4e200b504e9abb40b Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 13 Nov 2022 10:29:25 +0100 Subject: [PATCH 063/185] Fix buildinfo.json generation --- .github/workflows/conan-package-create.yml | 14 +++++++++++--- .github/workflows/conan-package.yml | 4 +++- .github/workflows/conan-recipe-version.yml | 4 ++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index 5f781dfb00..673212f488 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -11,6 +11,14 @@ on: required: true type: number + recipe_user: + required: true + type: string + + recipe_channel: + required: true + type: string + recipe_id_full: required: true type: string @@ -140,12 +148,12 @@ jobs: if: ${{ inputs.conan_config_branch == '' }} run: conan config install https://github.com/Ultimaker/conan-config.git - - name: Create the Packages + - name: Create the Packages and the buildinfo.json if: ${{ !inputs.create_from_source }} run: | conan_build_info --v2 start ${{ inputs.project_name }} ${{ github.run_number }}000${{ inputs.build_id }} - conan lock create --reference ${{ inputs.recipe_id_full }} --build=missing --update - conan install ${{ inputs.recipe_id_full }} --build=missing --update --lockfile=conan.lock + conan lock create --reference ${{ inputs.recipe_id_full }} --user=${{ inputs.recipe_user }} --channel=${{ inputs.recipe_channel }} --lockfile-out=conan.lock + conan install ${{ inputs.recipe_id_full }} --build=missing --update --lockfile=conan.lock --lockfile-out=conan.lock conan_build_info --v2 create buildinfo.json --lockfile conan.lock --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} conan_build_info --v2 stop diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml index 0a3d4447c1..9dd0d7cfe2 100644 --- a/.github/workflows/conan-package.yml +++ b/.github/workflows/conan-package.yml @@ -81,8 +81,10 @@ jobs: uses: ultimaker/cura/.github/workflows/conan-package-create.yml@main with: - project_name: cura + project_name: ${{ needs.conan-recipe-version.outputs.recipe_projectname }} build_id: 1 + recipe_user: ${{ needs.conan-recipe-version.outputs.recipe_user }} + recipe_channel: ${{ needs.conan-recipe-version.outputs.recipe_channel }} recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} runs_on: 'ubuntu-20.04' python_version: '3.10.x' diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index eb1824c8f7..b832b94784 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -37,6 +37,10 @@ on: description: "The conan channel" value: ${{ jobs.get-semver.outputs.channel }} + recipe_projectname: + description: "The conan projectname" + value: ${{ inputs.project_name }} + jobs: get-semver: From 2e0619d6472cf9b2064ce3eb9e38fb37a84176ba Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 13 Nov 2022 10:47:03 +0100 Subject: [PATCH 064/185] Fix buildinfo.json generation --- .github/workflows/conan-package-create.yml | 53 ++++++---------------- .github/workflows/conan-package.yml | 4 +- .github/workflows/conan-recipe-version.yml | 6 +-- 3 files changed, 19 insertions(+), 44 deletions(-) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index 673212f488..d1df4842e8 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -7,22 +7,14 @@ on: required: true type: string - build_id: - required: true - type: number - - recipe_user: - required: true - type: string - - recipe_channel: - required: true - type: string - recipe_id_full: required: true type: string + build_id: + required: true + type: number + recipe_id_latest: required: false type: string @@ -53,11 +45,6 @@ on: default: true type: boolean - create_from_source: - required: false - default: false - type: boolean - env: CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }} @@ -148,33 +135,23 @@ jobs: if: ${{ inputs.conan_config_branch == '' }} run: conan config install https://github.com/Ultimaker/conan-config.git - - name: Create the Packages and the buildinfo.json - if: ${{ !inputs.create_from_source }} + - name: Create the lock file run: | conan_build_info --v2 start ${{ inputs.project_name }} ${{ github.run_number }}000${{ inputs.build_id }} - conan lock create --reference ${{ inputs.recipe_id_full }} --user=${{ inputs.recipe_user }} --channel=${{ inputs.recipe_channel }} --lockfile-out=conan.lock - conan install ${{ inputs.recipe_id_full }} --build=missing --update --lockfile=conan.lock --lockfile-out=conan.lock - conan_build_info --v2 create buildinfo.json --lockfile conan.lock --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} - conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} - conan_build_info --v2 stop + conan lock create --reference ${{ inputs.recipe_id_full }} --lockfile-out=conan.lock - - name: Create the Packages (from source) - if: ${{ inputs.create_from_source }} - run: conan create . ${{ inputs.recipe_id_full }} --build=missing --update + - name: Create the Packages and the build info + run: conan install ${{ inputs.recipe_id_full }} --build=missing --update --lockfile=conan.lock --lockfile-out=conan.lock - - name: Remove the latest alias - if: ${{ inputs.create_from_source && inputs.recipe_id_latest != '' && runner.os == 'Linux' }} - run: | - conan remove ${{ inputs.recipe_id_latest }} -r cura -f || true - conan remove ${{ inputs.recipe_id_latest }} -r cura-ce -f || true + - name: Create the build info + run: conan_build_info --v2 create buildinfo.json --lockfile conan.lock --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} - - name: Create the latest alias - if: ${{ inputs.create_from_source && inputs.recipe_id_latest != '' && always() }} - run: conan alias ${{ inputs.recipe_id_latest }} ${{ inputs.recipe_id_full }} - - - name: Upload the Package(s) + - name: Upload the Package(s) and build info if: always() - run: conan upload "*" -r cura --all -c + run: | + conan upload "*" -r cura --all -c + conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }}conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} + conan_build_info --v2 stop - name: Upload the Package(s) community if: ${{ always() && inputs.conan_upload_community == true }} diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml index 9dd0d7cfe2..8fa56c8375 100644 --- a/.github/workflows/conan-package.yml +++ b/.github/workflows/conan-package.yml @@ -82,10 +82,8 @@ jobs: uses: ultimaker/cura/.github/workflows/conan-package-create.yml@main with: project_name: ${{ needs.conan-recipe-version.outputs.recipe_projectname }} - build_id: 1 - recipe_user: ${{ needs.conan-recipe-version.outputs.recipe_user }} - recipe_channel: ${{ needs.conan-recipe-version.outputs.recipe_channel }} recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} + build_id: 1 runs_on: 'ubuntu-20.04' python_version: '3.10.x' conan_logging_level: 'info' diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index b832b94784..e5b1af54f5 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -29,15 +29,15 @@ on: description: "is current branch a release branch?" value: ${{ jobs.get-semver.outputs.release_branch }} - recipe_user: + user: description: "The conan user" value: ${{ jobs.get-semver.outputs.user }} - recipe_channel: + channel: description: "The conan channel" value: ${{ jobs.get-semver.outputs.channel }} - recipe_projectname: + project_name: description: "The conan projectname" value: ${{ inputs.project_name }} From 76be83434f5fb4bd4af56461529afb64d30cb844 Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 13 Nov 2022 10:55:27 +0100 Subject: [PATCH 065/185] Use the correct project_name --- .github/workflows/conan-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml index 8fa56c8375..f88f815139 100644 --- a/.github/workflows/conan-package.yml +++ b/.github/workflows/conan-package.yml @@ -81,7 +81,7 @@ jobs: uses: ultimaker/cura/.github/workflows/conan-package-create.yml@main with: - project_name: ${{ needs.conan-recipe-version.outputs.recipe_projectname }} + project_name: ${{ needs.conan-recipe-version.outputs.project_name }} recipe_id_full: ${{ needs.conan-recipe-version.outputs.recipe_id_full }} build_id: 1 runs_on: 'ubuntu-20.04' From d85786c829bbcff20cf83874f4fa926725dd6cf8 Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 13 Nov 2022 11:05:35 +0100 Subject: [PATCH 066/185] fix uploading buildinfo step --- .github/workflows/conan-package-create.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index d1df4842e8..042b21627a 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -146,11 +146,13 @@ jobs: - name: Create the build info run: conan_build_info --v2 create buildinfo.json --lockfile conan.lock --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} - - name: Upload the Package(s) and build info + - name: Upload the Package(s) if: always() + run: conan upload "*" -r cura --all -c + + - name: Upload the build info run: | - conan upload "*" -r cura --all -c - conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }}conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} + conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} conan_build_info --v2 stop - name: Upload the Package(s) community From fab0430966cc35b18e8b54103c94254070a255ab Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 13 Nov 2022 13:13:36 +0100 Subject: [PATCH 067/185] use runs_on as cache key --- .github/workflows/conan-package-create.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index 042b21627a..4b96782278 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -87,7 +87,7 @@ jobs: path: | $HOME/.conan/data $HOME/.conan/conan_download_cache - key: conan-${{ runner.os }}-${{ runner.arch }}-create-cache + key: conan-${{ inputs.runs_on }}-${{ runner.arch }}-create-cache - name: Cache Conan local repository packages (Powershell) uses: actions/cache@v3 @@ -97,7 +97,7 @@ jobs: C:\Users\runneradmin\.conan\data C:\.conan C:\Users\runneradmin\.conan\conan_download_cache - key: conan-${{ runner.os }}-${{ runner.arch }}-create-cache + key: conan-${{ inputs.runs_on }}-${{ runner.arch }}-create-cache - name: Install MacOS system requirements if: ${{ runner.os == 'Macos' }} From b161a8ed941ab51e5c14683fbff2c79cb92d0729 Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 13 Nov 2022 13:34:23 +0100 Subject: [PATCH 068/185] install bison and flex on ubuntu --- .github/workflows/conan-package-create.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index 4b96782278..4a100029ec 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -109,7 +109,7 @@ jobs: sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y sudo apt update sudo apt upgrade - sudo apt install build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config -y + sudo apt install build-essential checkinstall libegl-dev zlib1g-dev libssl-dev ninja-build autoconf libx11-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxau-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev xtrans-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev xkb-data libxcb-dri3-dev uuid-dev libxcb-util-dev libxkbcommon-x11-dev pkg-config flex bison -y - name: Install GCC-12 on ubuntu-22.04 if: ${{ startsWith(inputs.runs_on, 'ubuntu-22.04') }} From 00f83dd3f8b95a93b65ce862c433300835473a17 Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 13 Nov 2022 13:48:46 +0100 Subject: [PATCH 069/185] Store the log and build artifacts --- .github/workflows/conan-package-create.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index 4a100029ec..459d65c8e3 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -158,3 +158,17 @@ jobs: - name: Upload the Package(s) community if: ${{ always() && inputs.conan_upload_community == true }} run: conan upload "*" -r cura-ce -c + + - name: Upload the log and build artifacts + if: always() + uses: actions/upload-artifact@v3 + with: + name: log-${{ inputs.runs_on }}-${{ runner.arch }} + path: | + buildinfo.json + conan.lock + conanbuildinfo.txt + conaninfo.txt + graph_info.json + build/** + retention-days: 1 From d83f11f42a8b105a4ee720ee26b8614147a91a4a Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Mon, 14 Nov 2022 12:46:51 +0100 Subject: [PATCH 070/185] Make usage of lockfile conditionally --- .github/workflows/conan-package-create.yml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/workflows/conan-package-create.yml b/.github/workflows/conan-package-create.yml index 459d65c8e3..1837150dae 100644 --- a/.github/workflows/conan-package-create.yml +++ b/.github/workflows/conan-package-create.yml @@ -15,6 +15,11 @@ on: required: true type: number + build_info: + required: false + default: true + type: boolean + recipe_id_latest: required: false type: string @@ -136,14 +141,21 @@ jobs: run: conan config install https://github.com/Ultimaker/conan-config.git - name: Create the lock file + if: ${{ inputs.build_info }} run: | conan_build_info --v2 start ${{ inputs.project_name }} ${{ github.run_number }}000${{ inputs.build_id }} conan lock create --reference ${{ inputs.recipe_id_full }} --lockfile-out=conan.lock - - name: Create the Packages and the build info + - name: Create the Packages using lockfile + if: ${{ inputs.build_info }} run: conan install ${{ inputs.recipe_id_full }} --build=missing --update --lockfile=conan.lock --lockfile-out=conan.lock + - name: Create the Packages + if: ${{ ! inputs.build_info }} + run: conan install ${{ inputs.recipe_id_full }} --build=missing --update + - name: Create the build info + if: ${{ inputs.build_info }} run: conan_build_info --v2 create buildinfo.json --lockfile conan.lock --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} - name: Upload the Package(s) @@ -151,6 +163,7 @@ jobs: run: conan upload "*" -r cura --all -c - name: Upload the build info + if: ${{ inputs.build_info }} run: | conan_build_info --v2 publish buildinfo.json --url https://ultimaker.jfrog.io/artifactory --user ${{ secrets.CONAN_USER }} --password ${{ secrets.CONAN_PASS }} conan_build_info --v2 stop From d6cab972c6b889b6ab55b97440cf831160b0908b Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 14 Nov 2022 12:57:38 +0100 Subject: [PATCH 071/185] Fix call to incorrect function after revert. CURA-9424 --- plugins/3MFReader/WorkspaceDialog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 1cc134b5e5..7d5590a92c 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -168,7 +168,7 @@ class WorkspaceDialog(QObject): return cast(MachineListModel, self._updatable_machines_model) def setUpdatableMachines(self, updatable_machines: List[GlobalStack]) -> None: - self._updatable_machines_model.update(updatable_machines) + self._updatable_machines_model.set_machines_filter(updatable_machines) self.updatableMachinesChanged.emit() @pyqtProperty(bool, notify = isAbstractMachineChanged) From fff03deefa3f1c11d1635e0dd63a6f26c609635c Mon Sep 17 00:00:00 2001 From: Rijk van Manen Date: Mon, 14 Nov 2022 13:20:29 +0100 Subject: [PATCH 072/185] default max comb distance = 15mm All ultimaker profiles get a default max combing distance of 15mm to avoid oozing in the infill. Profile/material specific settings are removed. PP-69 --- resources/definitions/ultimaker.def.json | 1 + .../ultimaker2_plus_connect/um2pc_cpe_0.25_normal.inst.cfg | 3 +-- .../ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_cpe_0.6_normal.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_cpe_0.8_normal.inst.cfg | 3 +-- .../ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg | 3 +-- .../ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg | 1 - .../ultimaker2_plus_connect/um2pc_petg_0.25_normal.inst.cfg | 3 +-- .../ultimaker2_plus_connect/um2pc_petg_0.4_draft.inst.cfg | 3 +-- .../ultimaker2_plus_connect/um2pc_petg_0.4_fast.inst.cfg | 3 +-- .../ultimaker2_plus_connect/um2pc_petg_0.4_normal.inst.cfg | 3 +-- .../ultimaker2_plus_connect/um2pc_petg_0.6_normal.inst.cfg | 3 +-- .../ultimaker2_plus_connect/um2pc_petg_0.8_normal.inst.cfg | 3 +-- .../quality/ultimaker3/um3_aa0.25_PETG_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg | 1 - .../ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg | 1 - .../quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.25_CPE_Normal_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.25_PETG_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_CPEP_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_CPEP_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_CPEP_High_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_CPEP_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_CPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_CPE_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_CPE_High_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_CPE_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PETG_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.4_PETG_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_PETG_High_Quality.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.4_PETG_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.25_PETG_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PETG_Draft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.4_PETG_Fast_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_PETG_High_Quality.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.4_PETG_Normal_Quality.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg | 1 - .../quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg | 1 - .../ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg | 1 - 72 files changed, 10 insertions(+), 80 deletions(-) diff --git a/resources/definitions/ultimaker.def.json b/resources/definitions/ultimaker.def.json index 283e17cc5d..2223b0993c 100644 --- a/resources/definitions/ultimaker.def.json +++ b/resources/definitions/ultimaker.def.json @@ -86,6 +86,7 @@ "enabled": false }, "retraction_combing": { "value": "'no_outer_surfaces'" }, + "retraction_combing_max_distance": { "value": 15 }, "retraction_count_max": { "value": 25 }, "retraction_extrusion_window": { "value": 1 }, "roofing_layer_count": { "value": "1" }, diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.25_normal.inst.cfg index e6ba07e333..59183e1226 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.25_normal.inst.cfg @@ -18,5 +18,4 @@ cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 15 infill_sparse_density = 20 speed_print = 30 -top_bottom_thickness = 0.72 -retraction_combing_max_distance = 50 \ No newline at end of file +top_bottom_thickness = 0.72 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg index ecc275955a..131196e4f2 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_fast.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 10 infill_sparse_density = 20 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_print = 45 speed_travel = 150 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg index 04edfcc04e..21e4815242 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_high.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time = 2 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 15 infill_sparse_density = 20 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_print = 45 speed_wall = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg index 575f34afa5..a5bc52107a 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.4_normal.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time = 3 cool_min_layer_time_fan_speed_max = 15 cool_min_speed = 10 infill_sparse_density = 20 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_print = 45 speed_wall = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.6_normal.inst.cfg index 3bbfcae59a..f9bb6000df 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.6_normal.inst.cfg @@ -17,7 +17,6 @@ cool_min_layer_time = 5 cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 8 infill_sparse_density = 20 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_print = 40 top_bottom_thickness = 1.2 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.8_normal.inst.cfg index b423160845..ab3546eda5 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpe_0.8_normal.inst.cfg @@ -18,5 +18,4 @@ cool_min_layer_time_fan_speed_max = 25 cool_min_speed = 8 infill_sparse_density = 20 speed_print = 40 -top_bottom_thickness = 1.2 -retraction_combing_max_distance = 50 \ No newline at end of file +top_bottom_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg index 1b72899389..1a617d5a7b 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_draft.inst.cfg @@ -20,7 +20,6 @@ infill_overlap = =0 if infill_sparse_density > 80 else 5 infill_sparse_density = 20 layer_0_z_overlap = 0.22 raft_airgap = 0.37 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_print = 25 speed_topbottom = =math.ceil(speed_print * 20 / 25) diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg index 9ca4dec093..e7b4596e32 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.4_normal.inst.cfg @@ -20,7 +20,6 @@ infill_overlap = =0 if infill_sparse_density > 80 else 5 infill_sparse_density = 20 layer_0_z_overlap = 0.22 raft_airgap = 0.37 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_print = 35 speed_topbottom = =math.ceil(speed_print * 20 / 35) diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg index bdf526c785..d8390ebf5e 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_draft.inst.cfg @@ -20,7 +20,6 @@ infill_overlap = =0 if infill_sparse_density > 80 else 5 infill_sparse_density = 20 layer_0_z_overlap = 0.22 raft_airgap = 0.37 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_print = 25 speed_topbottom = =math.ceil(speed_print * 20 / 25) diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg index f9348f6118..780e81c8ec 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.6_normal.inst.cfg @@ -20,7 +20,6 @@ infill_overlap = =0 if infill_sparse_density > 80 else 5 infill_sparse_density = 20 layer_0_z_overlap = 0.22 raft_airgap = 0.37 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_print = 35 speed_topbottom = =math.ceil(speed_print * 20 / 35) diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg index a612263cfa..1fcd6241b0 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_draft.inst.cfg @@ -27,5 +27,4 @@ speed_wall_x = =speed_print support_angle = 45 support_enable = True support_z_distance = 0.26 -top_bottom_thickness = 1.2 -retraction_combing_max_distance = 50 \ No newline at end of file +top_bottom_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg index 5bf30209fe..156c0cb434 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_cpep_0.8_normal.inst.cfg @@ -28,4 +28,3 @@ support_angle = 45 support_enable = True support_z_distance = 0.26 top_bottom_thickness = 1.2 -retraction_combing_max_distance = 50 diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.25_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.25_normal.inst.cfg index dbdc672498..6aaf960862 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.25_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.25_normal.inst.cfg @@ -18,5 +18,4 @@ cool_min_layer_time_fan_speed_max = 25 cool_min_speed = 15 infill_sparse_density = 20 speed_print = 30 -top_bottom_thickness = 0.72 -retraction_combing_max_distance = 8 \ No newline at end of file +top_bottom_thickness = 0.72 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_draft.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_draft.inst.cfg index fc7dec4b93..4880801cc4 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_draft.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_draft.inst.cfg @@ -24,5 +24,4 @@ top_bottom_thickness = 0.75 speed_wall_0 = =math.ceil(speed_print * 30 / 45) speed_topbottom = =math.ceil(speed_print * 30 / 45) speed_wall_x = =math.ceil(speed_print * 40 / 45) -speed_infill = =math.ceil(speed_print * 45 / 45) -retraction_combing_max_distance = 8 \ No newline at end of file +speed_infill = =math.ceil(speed_print * 45 / 45) \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_fast.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_fast.inst.cfg index a14e2fa0e9..242094359e 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_fast.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_fast.inst.cfg @@ -24,5 +24,4 @@ top_bottom_thickness = 0.75 speed_wall_0 = =math.ceil(speed_print * 30 / 45) speed_topbottom = =math.ceil(speed_print * 30 / 45) speed_wall_x = =math.ceil(speed_print * 40 / 45) -speed_infill = =math.ceil(speed_print * 45 / 45) -retraction_combing_max_distance = 8 \ No newline at end of file +speed_infill = =math.ceil(speed_print * 45 / 45) \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_normal.inst.cfg index 1daeacf5b1..9eabf0f070 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.4_normal.inst.cfg @@ -19,5 +19,4 @@ cool_min_speed = 10 infill_sparse_density = 20 speed_print = 45 speed_wall = =math.ceil(speed_print * 30 / 45) -top_bottom_thickness = 0.8 -retraction_combing_max_distance = 8 \ No newline at end of file +top_bottom_thickness = 0.8 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.6_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.6_normal.inst.cfg index 7598e7bce6..fa4835b5e0 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.6_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.6_normal.inst.cfg @@ -18,5 +18,4 @@ cool_min_layer_time_fan_speed_max = 20 cool_min_speed = 8 infill_sparse_density = 20 speed_print = 40 -top_bottom_thickness = 1.2 -retraction_combing_max_distance = 8 \ No newline at end of file +top_bottom_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.8_normal.inst.cfg b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.8_normal.inst.cfg index 17badc67ef..e816088c5e 100644 --- a/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.8_normal.inst.cfg +++ b/resources/quality/ultimaker2_plus_connect/um2pc_petg_0.8_normal.inst.cfg @@ -18,5 +18,4 @@ cool_min_layer_time_fan_speed_max = 25 cool_min_speed = 8 infill_sparse_density = 20 speed_print = 40 -top_bottom_thickness = 1.2 -retraction_combing_max_distance = 8 \ No newline at end of file +top_bottom_thickness = 1.2 \ No newline at end of file diff --git a/resources/quality/ultimaker3/um3_aa0.25_PETG_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.25_PETG_Normal_Quality.inst.cfg index ce7087bf3a..c9a96ecf1c 100644 --- a/resources/quality/ultimaker3/um3_aa0.25_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.25_PETG_Normal_Quality.inst.cfg @@ -16,5 +16,4 @@ speed_infill = =math.ceil(speed_print * 40 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) top_bottom_thickness = 0.8 material_print_temperature = =default_material_print_temperature - 5 -retraction_combing_max_distance = 8 retraction_combing = all diff --git a/resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg index df43409808..398f4be2a0 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PETG_Draft_Print.inst.cfg @@ -20,5 +20,4 @@ speed_print = 60 speed_topbottom = =math.ceil(speed_print * 35 / 60) speed_wall = =math.ceil(speed_print * 45 / 60) speed_wall_0 = =math.ceil(speed_wall * 35 / 45) -retraction_combing_max_distance = 8 retraction_combing = all diff --git a/resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg index d7c1434f85..292389472c 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PETG_Fast_Print.inst.cfg @@ -21,5 +21,4 @@ speed_topbottom = =math.ceil(speed_print * 30 / 60) speed_wall = =math.ceil(speed_print * 40 / 60) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) speed_infill = =math.ceil(speed_print * 50 / 60) -retraction_combing_max_distance = 8 retraction_combing = all diff --git a/resources/quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg b/resources/quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg index 22d4a931c4..69bff08818 100644 --- a/resources/quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.4_PETG_Normal_Quality.inst.cfg @@ -21,5 +21,4 @@ speed_print = 55 speed_topbottom = =math.ceil(speed_print * 30 / 55) speed_wall = =math.ceil(speed_print * 30 / 55) speed_infill = =math.ceil(speed_print * 45 / 55) -retraction_combing_max_distance = 8 retraction_combing = all diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg index 5e296b117a..caa2516bb4 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Draft_Print.inst.cfg @@ -18,5 +18,4 @@ prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) -retraction_combing_max_distance = 8 retraction_combing = all diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg index 7b203fe360..c36030f0f6 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Superdraft_Print.inst.cfg @@ -21,5 +21,4 @@ speed_topbottom = =math.ceil(speed_print * 30 / 45) speed_wall = =math.ceil(speed_print * 33 / 45) speed_wall_0 = =math.ceil(speed_wall * 30 / 40) speed_infill = =math.ceil(speed_print * 33 / 45) -retraction_combing_max_distance = 8 retraction_combing = all diff --git a/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg index 1117ab1a43..0dbd21ea00 100644 --- a/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker3/um3_aa0.8_PETG_Verydraft_Print.inst.cfg @@ -19,5 +19,4 @@ prime_tower_enable = True speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) -retraction_combing_max_distance = 8 retraction_combing = all diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_CPE_Normal_Quality.inst.cfg index 5ced8748b1..2c7b1f63f3 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_CPE_Normal_Quality.inst.cfg @@ -12,7 +12,6 @@ material = generic_cpe variant = AA 0.25 [values] -retraction_combing_max_distance = 50 speed_infill = =math.ceil(speed_print * 40 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) top_bottom_thickness = 0.8 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.25_PETG_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.25_PETG_Normal_Quality.inst.cfg index 8b42be13b0..45afd4501a 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.25_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.25_PETG_Normal_Quality.inst.cfg @@ -13,7 +13,6 @@ variant = AA 0.25 [values] material_print_temperature = =default_material_print_temperature - 5 -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 40 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) top_bottom_thickness = 0.8 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Draft_Print.inst.cfg index 562023183d..177290c551 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ material_print_temperature = =default_material_print_temperature + 10 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing_max_distance = 50 retraction_hop = 0.2 retraction_hop_enabled = False retraction_hop_only_when_collides = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Fast_Print.inst.cfg index 86a955c24a..ebb934c56c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ material_print_temperature = =default_material_print_temperature + 10 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing_max_distance = 50 retraction_hop = 0.2 retraction_hop_enabled = False retraction_hop_only_when_collides = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_High_Quality.inst.cfg index cbd48442e3..42faffdd88 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_High_Quality.inst.cfg @@ -25,7 +25,6 @@ material_print_temperature = =default_material_print_temperature + 2 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing_max_distance = 50 retraction_hop = 0.2 retraction_hop_enabled = False retraction_hop_only_when_collides = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Normal_Quality.inst.cfg index f70b6b22bf..bbbf14001b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -25,7 +25,6 @@ material_print_temperature = =default_material_print_temperature + 5 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing_max_distance = 50 retraction_hop = 0.2 retraction_hop_enabled = False retraction_hop_only_when_collides = True diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Draft_Print.inst.cfg index 57ae37e209..7a0115080e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Draft_Print.inst.cfg @@ -16,7 +16,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed skin_overlap = 20 speed_infill = =math.ceil(speed_print * 50 / 60) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Fast_Print.inst.cfg index 2becdb2bc2..5759d4d710 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Fast_Print.inst.cfg @@ -17,7 +17,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 5 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_High_Quality.inst.cfg index 4774cea71f..df2df7d58f 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_High_Quality.inst.cfg @@ -19,7 +19,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 5 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Normal_Quality.inst.cfg index e34a9c943d..5c182298a0 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_CPE_Normal_Quality.inst.cfg @@ -17,7 +17,6 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_infill = =math.ceil(speed_print * 45 / 55) speed_print = 55 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Draft_Print.inst.cfg index 08e059547d..5630992467 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Draft_Print.inst.cfg @@ -16,7 +16,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' material_final_print_temperature = =material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 5 -retraction_combing_max_distance = 8 skin_overlap = 20 speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Fast_Print.inst.cfg index 81431a2089..d7a21b7db9 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Fast_Print.inst.cfg @@ -17,7 +17,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 speed_topbottom = =math.ceil(speed_print * 30 / 60) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_High_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_High_Quality.inst.cfg index 943b720e4d..7dc95765e5 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_High_Quality.inst.cfg @@ -19,7 +19,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 10 -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Normal_Quality.inst.cfg index c16ac3fb99..0d4448d7c5 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.4_PETG_Normal_Quality.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 5 -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 45 / 55) speed_print = 55 speed_topbottom = =math.ceil(speed_print * 30 / 55) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg index 16464b6394..a04f4ce184 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Fast_Print.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 10 prime_tower_enable = True -retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg index 17bcb153be..8d93a7cc86 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 prime_tower_enable = True -retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg index cd22ced2ce..d68a2fa7a5 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 7 prime_tower_enable = True -retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg index c05205a9f2..7672b99659 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Draft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 prime_tower_enable = True -retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg index 8cd5ba4ac2..c5fd2c0955 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 20 prime_tower_enable = True -retraction_combing_max_distance = 50 speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg index 1d619bf42c..e0b9362e0b 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 17 prime_tower_enable = True -retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg index d4a1f6c985..b4ff2efe6c 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Draft_Print.inst.cfg @@ -16,7 +16,6 @@ brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 prime_tower_enable = True -retraction_combing_max_distance = 8 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg index 127166bd62..437c9a8a1e 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Superdraft_Print.inst.cfg @@ -16,7 +16,6 @@ brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 prime_tower_enable = True -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg index ca5a5b8404..3c115ddec1 100644 --- a/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s3/um_s3_aa0.8_PETG_Verydraft_Print.inst.cfg @@ -16,7 +16,6 @@ brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 prime_tower_enable = True -retraction_combing_max_distance = 8 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg index f895450c0a..5220dc917c 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_CPE_Normal_Quality.inst.cfg @@ -12,7 +12,6 @@ material = generic_cpe variant = AA 0.25 [values] -retraction_combing_max_distance = 50 speed_infill = =math.ceil(speed_print * 40 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) top_bottom_thickness = 0.8 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.25_PETG_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.25_PETG_Normal_Quality.inst.cfg index afd987af02..3f99451398 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.25_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.25_PETG_Normal_Quality.inst.cfg @@ -13,7 +13,6 @@ variant = AA 0.25 [values] material_print_temperature = =default_material_print_temperature - 5 -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 40 / 55) speed_topbottom = =math.ceil(speed_print * 30 / 55) top_bottom_thickness = 0.8 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg index 757c495559..6a7089ebe5 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Draft_Print.inst.cfg @@ -23,7 +23,6 @@ material_print_temperature = =default_material_print_temperature + 10 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing_max_distance = 50 retraction_hop = 0.2 retraction_hop_enabled = False retraction_hop_only_when_collides = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg index 5e438c8704..06f2cc19b6 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Fast_Print.inst.cfg @@ -23,7 +23,6 @@ material_print_temperature = =default_material_print_temperature + 10 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing_max_distance = 50 retraction_hop = 0.2 retraction_hop_enabled = False retraction_hop_only_when_collides = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg index 6bcd25a9b9..be93585e5b 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_High_Quality.inst.cfg @@ -25,7 +25,6 @@ material_print_temperature = =default_material_print_temperature + 2 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing_max_distance = 50 retraction_hop = 0.2 retraction_hop_enabled = False retraction_hop_only_when_collides = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg index cc08c9d5d6..1dce2eff05 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPEP_Normal_Quality.inst.cfg @@ -25,7 +25,6 @@ material_print_temperature = =default_material_print_temperature + 5 multiple_mesh_overlap = 0 prime_tower_enable = True prime_tower_wipe_enabled = True -retraction_combing_max_distance = 50 retraction_hop = 0.2 retraction_hop_enabled = False retraction_hop_only_when_collides = True diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg index b1f0be1594..b961ede473 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Draft_Print.inst.cfg @@ -16,7 +16,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 10 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed skin_overlap = 20 speed_infill = =math.ceil(speed_print * 50 / 60) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg index e34aa7fd24..cf0eab0fca 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Fast_Print.inst.cfg @@ -17,7 +17,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature + 5 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg index 270b03521a..68a04f4f61 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_High_Quality.inst.cfg @@ -19,7 +19,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature - 5 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg index f7f7979188..3a136fdd40 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_CPE_Normal_Quality.inst.cfg @@ -17,7 +17,6 @@ machine_nozzle_cool_down_speed = 0.85 machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 -retraction_combing_max_distance = 50 retraction_prime_speed = =retraction_speed speed_infill = =math.ceil(speed_print * 45 / 55) speed_print = 55 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Draft_Print.inst.cfg index f1e55234df..b07d4d37f1 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Draft_Print.inst.cfg @@ -16,7 +16,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' material_final_print_temperature = =material_print_temperature - 5 material_initial_print_temperature = =material_print_temperature material_print_temperature = =default_material_print_temperature + 5 -retraction_combing_max_distance = 8 skin_overlap = 20 speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Fast_Print.inst.cfg index bdb4e78d6a..97b6d52fa8 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Fast_Print.inst.cfg @@ -17,7 +17,6 @@ infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'triangles' material_final_print_temperature = =material_print_temperature - 10 material_initial_print_temperature = =material_print_temperature - 5 material_print_temperature = =default_material_print_temperature -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 50 / 60) speed_print = 60 speed_topbottom = =math.ceil(speed_print * 30 / 60) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_High_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_High_Quality.inst.cfg index 58ddfca383..118dbded28 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_High_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_High_Quality.inst.cfg @@ -19,7 +19,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 10 -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 40 / 50) speed_print = 50 speed_topbottom = =math.ceil(speed_print * 30 / 50) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Normal_Quality.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Normal_Quality.inst.cfg index 5a9addabb1..20c4c73716 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Normal_Quality.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.4_PETG_Normal_Quality.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_heat_up_speed = 1.5 material_final_print_temperature = =material_print_temperature - 15 material_initial_print_temperature = =material_print_temperature - 10 material_print_temperature = =default_material_print_temperature - 5 -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 45 / 55) speed_print = 55 speed_topbottom = =math.ceil(speed_print * 30 / 55) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg index 9f7101546f..e014c6ae90 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Fast_Print.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 10 prime_tower_enable = True -retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg index c342e4d2f7..a4e265c4cf 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Superdraft_Print.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 5 prime_tower_enable = True -retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg index cf0b8da5b7..c27a37dafb 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPEP_Verydraft_Print.inst.cfg @@ -18,7 +18,6 @@ machine_nozzle_cool_down_speed = 0.9 machine_nozzle_heat_up_speed = 1.4 material_print_temperature = =default_material_print_temperature - 7 prime_tower_enable = True -retraction_combing_max_distance = 50 retraction_hop = 0.1 retraction_hop_enabled = False skin_overlap = 0 diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg index 19f7e7be37..d10b520869 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Draft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 15 prime_tower_enable = True -retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg index d15f1a7c84..4745f45d52 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Superdraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 20 prime_tower_enable = True -retraction_combing_max_distance = 50 speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg index 721d0a8752..3e2317aea2 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_CPE_Verydraft_Print.inst.cfg @@ -15,7 +15,6 @@ variant = AA 0.8 brim_width = 15 material_print_temperature = =default_material_print_temperature + 17 prime_tower_enable = True -retraction_combing_max_distance = 50 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg index c9dc99154d..c38b26a764 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Draft_Print.inst.cfg @@ -16,7 +16,6 @@ brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 prime_tower_enable = True -retraction_combing_max_distance = 8 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg index 67bbef5ac0..2c627b32ca 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Superdraft_Print.inst.cfg @@ -16,7 +16,6 @@ brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 prime_tower_enable = True -retraction_combing_max_distance = 8 speed_infill = =math.ceil(speed_print * 33 / 45) speed_print = 45 speed_topbottom = =math.ceil(speed_print * 30 / 45) diff --git a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg index e25a61b38a..036943bba7 100644 --- a/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg +++ b/resources/quality/ultimaker_s5/um_s5_aa0.8_PETG_Verydraft_Print.inst.cfg @@ -16,7 +16,6 @@ brim_width = 7 cool_fan_speed = 20 material_print_temperature = =default_material_print_temperature - 5 prime_tower_enable = True -retraction_combing_max_distance = 8 speed_print = 40 speed_topbottom = =math.ceil(speed_print * 25 / 40) speed_wall = =math.ceil(speed_print * 30 / 40) From 959c42d96a259428fbdaaa87a612a93f7b87069f Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 14 Nov 2022 13:34:46 +0100 Subject: [PATCH 073/185] The printer to override was not being set initially, causing file loading to fail when not selecting a printer in the MachineSelector. Fix is to set it on initialization from the WorkspaceReader CURA-9424 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index bec50b5660..f810ff58e5 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -600,6 +600,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setActiveMode(active_mode) self._dialog.setUpdatableMachines(updatable_machines) self._dialog.setMachineName(machine_name) + self._dialog.setMachineToOverride(global_stack_id) self._dialog.setMaterialLabels(material_labels) self._dialog.setMachineType(machine_type) self._dialog.setExtruders(extruders) From 7f9c183072a3ec9246be5251787ff26f862f6b49 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 14 Nov 2022 13:35:03 +0100 Subject: [PATCH 074/185] Remove redundant assignments CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 3d22e18874..8b93b7f633 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -131,8 +131,6 @@ UM.Dialog machineSelector.machineName = catalog.i18nc("@button", "Create new") manager.setIsAbstractMachine(false) manager.setIsNetworkedMachine(false) - machineSelector.isConnectedCloudPrinter = false - machineSelector.isCloudRegistered = false toggleContent() manager.setResolveStrategy("machine", "new") From 90ce031b275b4a8e42f3851045ed8949917d8432 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 15 Nov 2022 13:49:02 +0100 Subject: [PATCH 075/185] Add default case CURA-9424 --- resources/qml/PrinterSelector/MachineSelectorList.qml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/qml/PrinterSelector/MachineSelectorList.qml b/resources/qml/PrinterSelector/MachineSelectorList.qml index b3a65da7da..ddf9586065 100644 --- a/resources/qml/PrinterSelector/MachineSelectorList.qml +++ b/resources/qml/PrinterSelector/MachineSelectorList.qml @@ -28,6 +28,8 @@ ListView return catalog.i18nc("@label", "Connected printers"); case "other": return catalog.i18nc("@label", "Other printers"); + default: + return catalog.i18nc("@label", "Other printers"); } } height: UM.Theme.getSize("action_button").height From cac9d67352ae0613fe3ddadad76230c46666d042 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 15 Nov 2022 13:49:55 +0100 Subject: [PATCH 076/185] Apply suggestions from code review Co-authored-by: Casper Lamboo --- plugins/3MFReader/WorkspaceRow.qml | 4 ++-- plugins/3MFReader/WorkspaceSection.qml | 2 +- plugins/PrepareStage/PrepareMenu.qml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/3MFReader/WorkspaceRow.qml b/plugins/3MFReader/WorkspaceRow.qml index 72cea7b5bd..8d9f1f25b3 100644 --- a/plugins/3MFReader/WorkspaceRow.qml +++ b/plugins/3MFReader/WorkspaceRow.qml @@ -21,14 +21,14 @@ Row { id: leftLabel text: catalog.i18nc("@action:label", "Type") - width: (parent.width / 4) | 0 + width: Math.round(parent.width / 4) wrapMode: Text.WordWrap } UM.Label { id: rightLabel text: manager.machineType - width: (parent.width / 3) | 0 + width: Math.round(parent.width / 3) wrapMode: Text.WordWrap } } \ No newline at end of file diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index b11cc04cd7..6eb8f50bdf 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -50,7 +50,7 @@ Item Item { id: comboboxTooltip - width: (parent.width / 2.5) | 0 + width: Math.round(parent.width / 2.5) height: visible ? UM.Theme.getSize("default_margin").height : 0 anchors.top: parent.top anchors.right: parent.right diff --git a/plugins/PrepareStage/PrepareMenu.qml b/plugins/PrepareStage/PrepareMenu.qml index 12db91635b..ab9b9b1b3d 100644 --- a/plugins/PrepareStage/PrepareMenu.qml +++ b/plugins/PrepareStage/PrepareMenu.qml @@ -91,7 +91,7 @@ Item fixedWidthMode: true // The maximum width of the button is half of the total space, minus the padding of the parent, the right // padding of the component and half the spacing because of the space between buttons. - width: parent.width / 2 - rightPadding * 1.5 + width: Math.round(parent.width / 2 - rightPadding * 1.5) onClicked: { machineSelection.toggleContent() From e4ad9cb48cf7418604626f820f8cbf73ae8de33f Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 15 Nov 2022 14:08:47 +0100 Subject: [PATCH 077/185] Move base hovered logic out of ComboBox.qml since base is undefined in most places the component is used. CURA-9424 --- plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml | 1 + resources/qml/Settings/SettingComboBox.qml | 1 + resources/qml/Settings/SettingExtruder.qml | 2 ++ resources/qml/Settings/SettingOptionalExtruder.qml | 1 + resources/qml/Widgets/ComboBox.qml | 3 ++- 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml index 2d4b3e01e5..be7aebcf7a 100644 --- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml +++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml @@ -150,6 +150,7 @@ Item width: parent.width / 2 - UM.Theme.getSize("default_margin").width height: UM.Theme.getSize("setting_control").height textRole: "text" + forceHighlight: base.hovered model: ListModel { diff --git a/resources/qml/Settings/SettingComboBox.qml b/resources/qml/Settings/SettingComboBox.qml index cbabb3ffd4..c57c0a1548 100644 --- a/resources/qml/Settings/SettingComboBox.qml +++ b/resources/qml/Settings/SettingComboBox.qml @@ -18,6 +18,7 @@ SettingItem model: definition.options textRole: "value" + forceHighlight: base.hovered anchors.fill: parent diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 567161b8f6..63413aa9bd 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -17,6 +17,8 @@ SettingItem id: control anchors.fill: parent + forceHighlight: base.hovered + property var extrudersModel: CuraApplication.getExtrudersModel() model: extrudersModel diff --git a/resources/qml/Settings/SettingOptionalExtruder.qml b/resources/qml/Settings/SettingOptionalExtruder.qml index 22f03d44a2..a9fdc626b9 100644 --- a/resources/qml/Settings/SettingOptionalExtruder.qml +++ b/resources/qml/Settings/SettingOptionalExtruder.qml @@ -23,6 +23,7 @@ SettingItem { id: control anchors.fill: parent + forceHighlight: base.hovered model: base.extrudersWithOptionalModel diff --git a/resources/qml/Widgets/ComboBox.qml b/resources/qml/Widgets/ComboBox.qml index a7eeb33f6a..06ac2425bb 100644 --- a/resources/qml/Widgets/ComboBox.qml +++ b/resources/qml/Widgets/ComboBox.qml @@ -19,6 +19,7 @@ ComboBox property var defaultTextOnEmptyIndex: "" // Text displayed in the combobox when the model has items but no item is selected property alias textFormat: contentLabel.textFormat property alias backgroundColor: background.color + property bool forceHighlight: false enabled: delegateModel.count > 0 @@ -46,7 +47,7 @@ ComboBox State { name: "highlighted" - when: ((base != undefined && base.hovered) || control.hovered) && !control.activeFocus + when: (control.hovered && !control.activeFocus) || forceHighlight PropertyChanges { target: background From dd0411f1713fb3590dfec0d3232d2d6a314f1353 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 15 Nov 2022 14:56:25 +0100 Subject: [PATCH 078/185] isOnline was incorrectly being used instead of isNetworked. This caused offline printers not to show an Icon. Fixed CURA-9424 --- cura/Machines/Models/MachineListModel.py | 5 ++++- plugins/3MFReader/WorkspaceDialog.py | 8 ++++---- plugins/3MFReader/WorkspaceDialog.qml | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/cura/Machines/Models/MachineListModel.py b/cura/Machines/Models/MachineListModel.py index 03c3fbdcaa..b84dc26f0a 100644 --- a/cura/Machines/Models/MachineListModel.py +++ b/cura/Machines/Models/MachineListModel.py @@ -5,7 +5,7 @@ # online cloud connected printers are represented within this ListModel. Additional information such as the number of # connected printers for each printer type is gathered. -from typing import Optional, List +from typing import Optional, List, cast from PyQt6.QtCore import Qt, QTimer, QObject, pyqtSlot, pyqtProperty, pyqtSignal @@ -28,6 +28,7 @@ class MachineListModel(ListModel): MachineCountRole = Qt.ItemDataRole.UserRole + 6 IsAbstractMachineRole = Qt.ItemDataRole.UserRole + 7 ComponentTypeRole = Qt.ItemDataRole.UserRole + 8 + IsNetworkedMachineRole = Qt.ItemDataRole.UserRole + 9 def __init__(self, parent: Optional[QObject] = None, machines_filter: List[GlobalStack] = None, listenToChanges: bool = True) -> None: super().__init__(parent) @@ -45,6 +46,7 @@ class MachineListModel(ListModel): self.addRoleName(self.MachineCountRole, "machineCount") self.addRoleName(self.IsAbstractMachineRole, "isAbstractMachine") self.addRoleName(self.ComponentTypeRole, "componentType") + self.addRoleName(self.IsNetworkedMachineRole, "isNetworked") self._change_timer = QTimer() self._change_timer.setInterval(200) @@ -151,6 +153,7 @@ class MachineListModel(ListModel): "metadata": container_stack.getMetaData().copy(), "isOnline": is_online, "isAbstractMachine": parseBool(container_stack.getMetaDataEntry("is_abstract_machine", False)), + "isNetworked": cast(GlobalStack, container_stack).hasNetworkedConnection() if isinstance(container_stack, GlobalStack) else False, "machineCount": machine_count, "catergory": "connected" if is_online else "other", }) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 7d5590a92c..15650b5164 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -82,7 +82,7 @@ class WorkspaceDialog(QObject): machineNameChanged = pyqtSignal() updatableMachinesChanged = pyqtSignal() isAbstractMachineChanged = pyqtSignal() - isOnlineChanged = pyqtSignal() + isNetworkedChanged = pyqtSignal() materialLabelsChanged = pyqtSignal() objectsOnPlateChanged = pyqtSignal() numUserSettingsChanged = pyqtSignal() @@ -180,14 +180,14 @@ class WorkspaceDialog(QObject): self._is_abstract_machine = is_abstract_machine self.isAbstractMachineChanged.emit() - @pyqtProperty(bool, notify = isOnlineChanged) - def isOnline(self) -> bool: + @pyqtProperty(bool, notify = isNetworkedChanged) + def isNetworked(self) -> bool: return self._is_online_machine @pyqtSlot(bool) def setIsNetworkedMachine(self, is_online_machine: bool) -> None: self._is_online_machine = is_online_machine - self.isOnlineChanged.emit() + self.isNetworkedChanged.emit() @pyqtProperty(str, notify=qualityTypeChanged) def qualityType(self) -> str: diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 8b93b7f633..2d9a7eba2d 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -114,7 +114,7 @@ UM.Dialog isConnectedCloudPrinter: false isCloudRegistered: false - isNetworkPrinter: manager.isOnline + isNetworkPrinter: manager.isNetworked isGroup: manager.isAbstractMachine minDropDownWidth: machineSelector.width @@ -144,7 +144,7 @@ UM.Dialog manager.setResolveStrategy("machine", "override") manager.setMachineToOverride(machine.id) manager.setIsAbstractMachine(machine.isAbstractMachine) - manager.setIsNetworkedMachine(machine.isOnline) + manager.setIsNetworkedMachine(machine.isNetworked) machineSelector.machineName = machine.name } } From cd07647b2476ae714ab6fdf2c0442adde534ee91 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 15 Nov 2022 14:57:39 +0100 Subject: [PATCH 079/185] Change misleading variable names CURA-9424 --- plugins/3MFReader/WorkspaceDialog.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.py b/plugins/3MFReader/WorkspaceDialog.py index 15650b5164..afa1deecfd 100644 --- a/plugins/3MFReader/WorkspaceDialog.py +++ b/plugins/3MFReader/WorkspaceDialog.py @@ -67,7 +67,7 @@ class WorkspaceDialog(QObject): self._plugin_registry: PluginRegistry = CuraApplication.getInstance().getPluginRegistry() self._install_missing_package_dialog: Optional[QObject] = None self._is_abstract_machine = False - self._is_online_machine = False + self._is_networked_machine = False machineConflictChanged = pyqtSignal() qualityChangesConflictChanged = pyqtSignal() @@ -182,11 +182,11 @@ class WorkspaceDialog(QObject): @pyqtProperty(bool, notify = isNetworkedChanged) def isNetworked(self) -> bool: - return self._is_online_machine + return self._is_networked_machine @pyqtSlot(bool) - def setIsNetworkedMachine(self, is_online_machine: bool) -> None: - self._is_online_machine = is_online_machine + def setIsNetworkedMachine(self, is_networked_machine: bool) -> None: + self._is_networked_machine = is_networked_machine self.isNetworkedChanged.emit() @pyqtProperty(str, notify=qualityTypeChanged) From 28862c89e58b7a45f710b5931ab8ce283ba7dfe0 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 15 Nov 2022 15:03:23 +0100 Subject: [PATCH 080/185] Show online badge and printer icon when initially loading machine selector CURA-9424 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index f810ff58e5..8db6334552 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -600,6 +600,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setActiveMode(active_mode) self._dialog.setUpdatableMachines(updatable_machines) self._dialog.setMachineName(machine_name) + self._dialog.setIsNetworkedMachine(existing_global_stack.hasNetworkedConnection()) self._dialog.setMachineToOverride(global_stack_id) self._dialog.setMaterialLabels(material_labels) self._dialog.setMachineType(machine_type) From a30fbf5a8f9367c10e4fe905b2c790d078fdda7f Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 15 Nov 2022 15:10:44 +0100 Subject: [PATCH 081/185] Disable connection status icon for drop down in WorkspaceDialog. It is not possible to display the correct status for LAN printers without making them the active printer anyway. CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 1 + resources/qml/PrinterSelector/MachineSelector.qml | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 2d9a7eba2d..8dcf1e8454 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -116,6 +116,7 @@ UM.Dialog isCloudRegistered: false isNetworkPrinter: manager.isNetworked isGroup: manager.isAbstractMachine + connectionStatus: "" minDropDownWidth: machineSelector.width diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index b8bacc8f36..b8b27049f6 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -33,7 +33,7 @@ Cura.ExpandablePopup property list buttons - readonly property string connectionStatus: { + property string connectionStatus: { if (isNetworkPrinter) { return "printer_connected" @@ -148,7 +148,7 @@ Cura.ExpandablePopup color: connectionStatus == "printer_cloud_not_available" ? UM.Theme.getColor("cloud_unavailable") : UM.Theme.getColor("primary") - visible: isNetworkPrinter || isCloudRegistered + visible: (isNetworkPrinter || isCloudRegistered) && source != "" // Make a themable circle in the background so we can change it in other themes Rectangle From dc65e801d09217ac1b1cb485e509a9eae35587c4 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 15 Nov 2022 15:35:16 +0100 Subject: [PATCH 082/185] Set machine `isAbractMachine` in workspace dialog initialisation --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 8db6334552..0163877e3a 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -9,6 +9,7 @@ from typing import cast, Dict, List, Optional, Tuple, Any, Set import xml.etree.ElementTree as ET +from UM.Util import parseBool from UM.Workspace.WorkspaceReader import WorkspaceReader from UM.Application import Application @@ -601,6 +602,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setUpdatableMachines(updatable_machines) self._dialog.setMachineName(machine_name) self._dialog.setIsNetworkedMachine(existing_global_stack.hasNetworkedConnection()) + self._dialog.setIsAbstractMachine(parseBool(existing_global_stack.getMetaDataEntry("is_abstract_machine", False))) self._dialog.setMachineToOverride(global_stack_id) self._dialog.setMaterialLabels(material_labels) self._dialog.setMachineType(machine_type) From 156004cb17eea83ba5c8ab9e24798b1bfa36b9af Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 16 Nov 2022 16:11:19 +0100 Subject: [PATCH 083/185] Move logic for deciding the initially selected printer that was inside WorkspaceDialog.qml before into WorkspaceDialog.py. A block of code is run after dialog.show() and most of the dialog assignment. This is because dialog.show() resets the _result dictionary, we want to update the values in _result afterwards. CURA-9424 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 32 ++++++++++++++++++--- plugins/3MFReader/WorkspaceDialog.qml | 7 ++--- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 0163877e3a..20bb7c8e2e 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -600,9 +600,6 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setNumUserSettings(num_user_settings) self._dialog.setActiveMode(active_mode) self._dialog.setUpdatableMachines(updatable_machines) - self._dialog.setMachineName(machine_name) - self._dialog.setIsNetworkedMachine(existing_global_stack.hasNetworkedConnection()) - self._dialog.setIsAbstractMachine(parseBool(existing_global_stack.getMetaDataEntry("is_abstract_machine", False))) self._dialog.setMachineToOverride(global_stack_id) self._dialog.setMaterialLabels(material_labels) self._dialog.setMachineType(machine_type) @@ -612,6 +609,33 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setMissingPackagesMetadata(missing_package_metadata) self._dialog.show() + # Choosing the initially selected printer in MachineSelector + is_networked_machine = False + is_abstract_machine = False + if global_stack and isinstance(global_stack, GlobalStack): + # The machine included in the project file exists locally already, no need to change selected printers. + is_networked_machine = global_stack.hasNetworkedConnection() + is_abstract_machine = parseBool(existing_global_stack.getMetaDataEntry("is_abstract_machine", False)) + elif self._dialog.updatableMachinesModel.count > 0: + # The machine included in the project file does not exist. There is another machine of the same type. + # This will always default to an abstract machine first. + machine = self._dialog.updatableMachinesModel.getItem(0) + machine_name = machine["name"] + is_networked_machine = machine["isNetworked"] + is_abstract_machine = machine["isAbstractMachine"] + self._dialog.setResolveStrategy("machine", "override") + self._dialog.setMachineToOverride(machine["id"]) + else: + # The machine included in the project file does not exist. There are no other printers of the same type. Default to "Create New". + machine_name = i18n_catalog.i18nc("@button", "Create new") + self._dialog.setIsAbstractMachine(False) + self._dialog.setIsNetworkedMachine(False) + self._dialog.setResolveStrategy("machine", "new") + + self._dialog.setIsNetworkedMachine(is_networked_machine) + self._dialog.setIsAbstractMachine(is_abstract_machine) + self._dialog.setMachineName(machine_name) + # Block until the dialog is closed. self._dialog.waitForClose() @@ -674,7 +698,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): temp_preferences = Preferences() try: serialized = archive.open("Cura/preferences.cfg").read().decode("utf-8") - except KeyError: + except KeyError as e: # If there is no preferences file, it's not a workspace, so notify user of failure. Logger.log("w", "File %s is not a valid workspace.", file_name) message = Message(i18n_catalog.i18nc("@info:error Don't translate the XML tags or !", diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 8dcf1e8454..221696a571 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -129,12 +129,11 @@ UM.Dialog width: parent.width - leftPadding * 1.5 onClicked: { + toggleContent() + manager.setResolveStrategy("machine", "new") machineSelector.machineName = catalog.i18nc("@button", "Create new") manager.setIsAbstractMachine(false) manager.setIsNetworkedMachine(false) - - toggleContent() - manager.setResolveStrategy("machine", "new") } } ] @@ -142,11 +141,11 @@ UM.Dialog onSelectPrinter: function(machine) { toggleContent(); + machineSelector.machineName = machine.name manager.setResolveStrategy("machine", "override") manager.setMachineToOverride(machine.id) manager.setIsAbstractMachine(machine.isAbstractMachine) manager.setIsNetworkedMachine(machine.isNetworked) - machineSelector.machineName = machine.name } } } From 957c25973b0fe57dde7bb16e960a7205e80407f4 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 16 Nov 2022 16:39:14 +0100 Subject: [PATCH 084/185] Specify to build installer per-OS. Exclusion happens _before_ additional includes unfortunaltely, so the matrix is back to being a plain list if OS's. This also means that, if we don't want to build each OS x OS_id, we have to put that information somewhere else. OS_id didn't really belong in the matrix anyway, since it's a derivative value. It's now replaced with a named environment variable. The way to exclude and select the 'name' used in the filename for each OS seems a little cumbersome, but I didn't find any better way so far. (should) implement the 'easy', 'lite' version of CURA-9880 --- .github/workflows/conan-package.yml | 3 ++ .github/workflows/cura-installer.yml | 43 +++++++++++++++++++++------- 2 files changed, 35 insertions(+), 11 deletions(-) diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml index f88f815139..11809f65d4 100644 --- a/.github/workflows/conan-package.yml +++ b/.github/workflows/conan-package.yml @@ -12,14 +12,17 @@ on: create_binaries_windows: required: true default: false + type: boolean description: 'create binaries Windows' create_binaries_linux: required: true default: false + type: boolean description: 'create binaries Linux' create_binaries_macos: required: true default: false + type: boolean description: 'create binaries Macos' push: diff --git a/.github/workflows/cura-installer.yml b/.github/workflows/cura-installer.yml index d0f9fb895e..b1a021b40c 100644 --- a/.github/workflows/cura-installer.yml +++ b/.github/workflows/cura-installer.yml @@ -31,6 +31,21 @@ on: required: true default: true type: boolean + create_binaries_windows: + description: 'Installer for Windows' + required: true + default: true + type: boolean + create_binaries_linux: + description: 'Installer for Linux' + required: true + default: true + type: boolean + create_binaries_macos: + description: 'Installer for MacOs' + required: true + default: true + type: boolean # Run the nightly at 3:25 UTC on working days #FIXME: Provide the same default values as the workflow dispatch @@ -56,6 +71,7 @@ env: CURA_CONAN_VERSION: ${{ inputs.cura_conan_version }} ENTERPRISE: ${{ inputs.enterprise }} STAGING: ${{ inputs.staging }} + OS_NAME: 'unknown-os' jobs: cura-installer-create: @@ -64,16 +80,21 @@ jobs: strategy: fail-fast: false matrix: - include: - - { os: macos-11, os_id: 'mac' } - - { os: windows-2022, os_id: 'win64' } - - { os: ubuntu-20.04, os_id: 'linux' } - - { os: ubuntu-22.04, os_id: 'linux-modern' } + os: [macos-11, windows-2022, ubuntu-20.04, ubuntu-22.04] + exclude: + - os: ${{ inputs.create_binaries_macos && '' || 'macos-11' }} + - os: ${{ inputs.create_binaries_windows && '' || 'windows-2022' }} + - os: ${{ inputs.create_binaries_linux && '' || 'ubuntu-20.04' }} + - os: ${{ inputs.create_binaries_linux && '' || 'ubuntu-22.04' }} steps: - name: Checkout uses: actions/checkout@v3 + - name: Get OS-id String + run: | + echo "OS_NAME=${{ (matrix.os == 'macos-11' && 'mac') || (matrix.os == 'windows-2022' && 'win64') || (matrix.os == 'ubuntu-20.04' && 'linux') || (matrix.os == 'ubuntu-22.04' && 'linux-modern') || matrix.os }}" >> $GITHUB_ENV + - name: Setup Python and pip uses: actions/setup-python@v4 with: @@ -217,34 +238,34 @@ jobs: - name: Archive the artifacts (bash) if: ${{ github.event.inputs.installer == 'false' && runner.os != 'Windows' }} - run: tar -zcf "./Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.tar.gz" "./Ultimaker-Cura/" + run: tar -zcf "./Ultimaker-Cura-$CURA_VERSION_FULL-${{ env.OS_NAME }}.tar.gz" "./Ultimaker-Cura/" working-directory: dist - name: Archive the artifacts (Powershell) if: ${{ github.event.inputs.installer == 'false' && runner.os == 'Windows' }} - run: Compress-Archive -Path ".\Ultimaker-Cura" -DestinationPath ".\Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ matrix.os_id }}.zip" + run: Compress-Archive -Path ".\Ultimaker-Cura" -DestinationPath ".\Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ env.OS_NAME }}.zip" working-directory: dist - name: Create the Windows exe installer (Powershell) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Windows' }} run: | - python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ matrix.os_id }}.exe" + python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ env.OS_NAME }}.exe" working-directory: dist - name: Create the Linux AppImage (Bash) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Linux' }} - run: python ../cura_inst/packaging/AppImage/create_appimage.py ./Ultimaker-Cura $CURA_VERSION_FULL "Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.AppImage" + run: python ../cura_inst/packaging/AppImage/create_appimage.py ./Ultimaker-Cura $CURA_VERSION_FULL "Ultimaker-Cura-$CURA_VERSION_FULL-${{ env.OS_NAME }}.AppImage" working-directory: dist - name: Create the MacOS dmg (Bash) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Macos' }} - run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.dmg" + run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "Ultimaker-Cura-$CURA_VERSION_FULL-${{ env.OS_NAME }}.dmg" working-directory: dist - name: Upload the artifacts uses: actions/upload-artifact@v3 with: - name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ matrix.os_id }} + name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ env.OS_NAME }} path: | dist/*.tar.gz dist/*.zip From b0160b2d86effc6d7f119c62d676fef01c3a520a Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 16 Nov 2022 19:36:26 +0100 Subject: [PATCH 085/185] Revert "Specify to build installer per-OS." This reverts commit 957c25973b0fe57dde7bb16e960a7205e80407f4. --- .github/workflows/conan-package.yml | 3 -- .github/workflows/cura-installer.yml | 43 +++++++--------------------- 2 files changed, 11 insertions(+), 35 deletions(-) diff --git a/.github/workflows/conan-package.yml b/.github/workflows/conan-package.yml index 11809f65d4..f88f815139 100644 --- a/.github/workflows/conan-package.yml +++ b/.github/workflows/conan-package.yml @@ -12,17 +12,14 @@ on: create_binaries_windows: required: true default: false - type: boolean description: 'create binaries Windows' create_binaries_linux: required: true default: false - type: boolean description: 'create binaries Linux' create_binaries_macos: required: true default: false - type: boolean description: 'create binaries Macos' push: diff --git a/.github/workflows/cura-installer.yml b/.github/workflows/cura-installer.yml index b1a021b40c..d0f9fb895e 100644 --- a/.github/workflows/cura-installer.yml +++ b/.github/workflows/cura-installer.yml @@ -31,21 +31,6 @@ on: required: true default: true type: boolean - create_binaries_windows: - description: 'Installer for Windows' - required: true - default: true - type: boolean - create_binaries_linux: - description: 'Installer for Linux' - required: true - default: true - type: boolean - create_binaries_macos: - description: 'Installer for MacOs' - required: true - default: true - type: boolean # Run the nightly at 3:25 UTC on working days #FIXME: Provide the same default values as the workflow dispatch @@ -71,7 +56,6 @@ env: CURA_CONAN_VERSION: ${{ inputs.cura_conan_version }} ENTERPRISE: ${{ inputs.enterprise }} STAGING: ${{ inputs.staging }} - OS_NAME: 'unknown-os' jobs: cura-installer-create: @@ -80,21 +64,16 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-11, windows-2022, ubuntu-20.04, ubuntu-22.04] - exclude: - - os: ${{ inputs.create_binaries_macos && '' || 'macos-11' }} - - os: ${{ inputs.create_binaries_windows && '' || 'windows-2022' }} - - os: ${{ inputs.create_binaries_linux && '' || 'ubuntu-20.04' }} - - os: ${{ inputs.create_binaries_linux && '' || 'ubuntu-22.04' }} + include: + - { os: macos-11, os_id: 'mac' } + - { os: windows-2022, os_id: 'win64' } + - { os: ubuntu-20.04, os_id: 'linux' } + - { os: ubuntu-22.04, os_id: 'linux-modern' } steps: - name: Checkout uses: actions/checkout@v3 - - name: Get OS-id String - run: | - echo "OS_NAME=${{ (matrix.os == 'macos-11' && 'mac') || (matrix.os == 'windows-2022' && 'win64') || (matrix.os == 'ubuntu-20.04' && 'linux') || (matrix.os == 'ubuntu-22.04' && 'linux-modern') || matrix.os }}" >> $GITHUB_ENV - - name: Setup Python and pip uses: actions/setup-python@v4 with: @@ -238,34 +217,34 @@ jobs: - name: Archive the artifacts (bash) if: ${{ github.event.inputs.installer == 'false' && runner.os != 'Windows' }} - run: tar -zcf "./Ultimaker-Cura-$CURA_VERSION_FULL-${{ env.OS_NAME }}.tar.gz" "./Ultimaker-Cura/" + run: tar -zcf "./Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.tar.gz" "./Ultimaker-Cura/" working-directory: dist - name: Archive the artifacts (Powershell) if: ${{ github.event.inputs.installer == 'false' && runner.os == 'Windows' }} - run: Compress-Archive -Path ".\Ultimaker-Cura" -DestinationPath ".\Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ env.OS_NAME }}.zip" + run: Compress-Archive -Path ".\Ultimaker-Cura" -DestinationPath ".\Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ matrix.os_id }}.zip" working-directory: dist - name: Create the Windows exe installer (Powershell) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Windows' }} run: | - python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ env.OS_NAME }}.exe" + python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ matrix.os_id }}.exe" working-directory: dist - name: Create the Linux AppImage (Bash) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Linux' }} - run: python ../cura_inst/packaging/AppImage/create_appimage.py ./Ultimaker-Cura $CURA_VERSION_FULL "Ultimaker-Cura-$CURA_VERSION_FULL-${{ env.OS_NAME }}.AppImage" + run: python ../cura_inst/packaging/AppImage/create_appimage.py ./Ultimaker-Cura $CURA_VERSION_FULL "Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.AppImage" working-directory: dist - name: Create the MacOS dmg (Bash) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Macos' }} - run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "Ultimaker-Cura-$CURA_VERSION_FULL-${{ env.OS_NAME }}.dmg" + run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.dmg" working-directory: dist - name: Upload the artifacts uses: actions/upload-artifact@v3 with: - name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ env.OS_NAME }} + name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ matrix.os_id }} path: | dist/*.tar.gz dist/*.zip From 70f7f68a517dfaa2878cf5ae6e0f76b027eebf3f Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 17 Nov 2022 13:01:20 +0100 Subject: [PATCH 086/185] Color icons in workspace dialog so they are themed correctly in dark mode. Don't show name when defaulting to create new printer. CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 2 +- plugins/3MFReader/WorkspaceSection.qml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 221696a571..c0128ab4de 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -96,7 +96,7 @@ UM.Dialog WorkspaceRow { leftLabelText: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name") - rightLabelText: manager.machineName + rightLabelText: manager.machineName == "Create new" ? "" : manager.machineName } } diff --git a/plugins/3MFReader/WorkspaceSection.qml b/plugins/3MFReader/WorkspaceSection.qml index 6eb8f50bdf..0c94ab5d6a 100644 --- a/plugins/3MFReader/WorkspaceSection.qml +++ b/plugins/3MFReader/WorkspaceSection.qml @@ -36,6 +36,7 @@ Item anchors.verticalCenter: parent.verticalCenter source: "" height: UM.Theme.getSize("medium_button_icon").height + color: UM.Theme.getColor("text") width: height } UM.Label @@ -95,6 +96,7 @@ Item visible: comboboxTooltipText != "" source: UM.Theme.getIcon("Help") + color: UM.Theme.getColor("text") UM.ToolTip { From 9774349cb7ed638777ced098565312c41ce6a052 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 17 Nov 2022 13:03:17 +0100 Subject: [PATCH 087/185] Make add printer component more responsive For some displays/screen resolutions the cut is expended beyond the borders of the window. By making the component more responsive this should be fixed. CURA-9894 --- .../qml/WelcomePages/AddUltimakerPrinter.qml | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/resources/qml/WelcomePages/AddUltimakerPrinter.qml b/resources/qml/WelcomePages/AddUltimakerPrinter.qml index f175942e06..d3e29dca8a 100644 --- a/resources/qml/WelcomePages/AddUltimakerPrinter.qml +++ b/resources/qml/WelcomePages/AddUltimakerPrinter.qml @@ -26,6 +26,7 @@ Control contentItem: ColumnLayout { + Layout.fillWidth: true UM.Label { Layout.fillWidth: true @@ -36,24 +37,33 @@ Control RowLayout { Layout.alignment: Qt.AlignHCenter + Layout.fillWidth: true - Image + Item { - source: UM.Theme.getImage("add_printer") - Layout.preferredWidth: 200 * screenScaleFactor - Layout.preferredHeight: 200 * screenScaleFactor + Layout.fillWidth: true + Layout.minimumWidth: childrenRect.width + Layout.preferredHeight: childrenRect.height + + Image + { + anchors.right: parent.right + source: UM.Theme.getImage("add_printer") + Layout.preferredWidth: 200 * screenScaleFactor + Layout.preferredHeight: 200 * screenScaleFactor + } } ColumnLayout { Layout.fillHeight: true - Layout.fillWidth: false + Layout.fillWidth: true Layout.alignment: Qt.AlignVCenter spacing: UM.Theme.getSize("default_margin").height UM.Label { - Layout.fillWidth: false + Layout.fillWidth: true Layout.alignment: Qt.AlignTop wrapMode: Text.WordWrap font: UM.Theme.getFont("default_bold") @@ -63,12 +73,7 @@ Control ColumnLayout { spacing: 0 - - FontMetrics - { - id: fontMetrics - font: UM.Theme.getFont("default") - } + Layout.fillWidth: true Repeater { model: [ @@ -79,8 +84,8 @@ Control UM.Label { Layout.alignment: Qt.AlignTop - font: fontMetrics.font - Layout.preferredHeight: fontMetrics.height + Layout.fillWidth: true + wrapMode: Text.WordWrap text: `${index + 1}. ${modelData}` } } From da71983891cc6756da85ef757d3fdd1a949d9b48 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 17 Nov 2022 14:41:14 +0100 Subject: [PATCH 088/185] Make combobox font and padding customizable. Style WorkspaceDialog comboboxes similar to MachineSelector CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 22 ++++++++++++++++++++++ resources/qml/RoundedRectangle.qml | 1 + resources/qml/Widgets/ComboBox.qml | 8 ++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index c0128ab4de..cb93aec37e 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -195,6 +195,17 @@ UM.Dialog model: resolveStrategiesModel textRole: "label" visible: manager.qualityChangesConflict + contentLeftPadding: UM.Theme.getSize("default_margin").width + textFont: UM.Theme.getFont("medium") + + background: Cura.RoundedRectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + color: qualityChangesResolveComboBox.hovered ? UM.Theme.getColor("expandable_hover") : UM.Theme.getColor("action_button") + cornerSide: Cura.RoundedRectangle.Direction.All + radius: UM.Theme.getSize("default_radius").width + } // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded currentIndex: @@ -238,6 +249,17 @@ UM.Dialog model: resolveStrategiesModel textRole: "label" visible: manager.materialConflict + contentLeftPadding: UM.Theme.getSize("default_margin").width + textFont: UM.Theme.getFont("medium") + + background: Cura.RoundedRectangle + { + border.width: UM.Theme.getSize("default_lining").width + border.color: UM.Theme.getColor("lining") + color: materialResolveComboBox.hovered ? UM.Theme.getColor("expandable_hover") : UM.Theme.getColor("action_button") + cornerSide: Cura.RoundedRectangle.Direction.All + radius: UM.Theme.getSize("default_radius").width + } // This is a hack. This will trigger onCurrentIndexChanged and set the index when this component in loaded currentIndex: diff --git a/resources/qml/RoundedRectangle.qml b/resources/qml/RoundedRectangle.qml index 3ca05e2125..86f7214654 100644 --- a/resources/qml/RoundedRectangle.qml +++ b/resources/qml/RoundedRectangle.qml @@ -1,3 +1,4 @@ + import QtQuick 2.7 import UM 1.2 as UM diff --git a/resources/qml/Widgets/ComboBox.qml b/resources/qml/Widgets/ComboBox.qml index 06ac2425bb..efe14497bc 100644 --- a/resources/qml/Widgets/ComboBox.qml +++ b/resources/qml/Widgets/ComboBox.qml @@ -20,6 +20,8 @@ ComboBox property alias textFormat: contentLabel.textFormat property alias backgroundColor: background.color property bool forceHighlight: false + property int contentLeftPadding: UM.Theme.getSize("setting_unit_margin").width + property var textFont: UM.Theme.getFont("default") enabled: delegateModel.count > 0 @@ -104,9 +106,10 @@ ComboBox contentItem: UM.Label { id: contentLabel - leftPadding: UM.Theme.getSize("setting_unit_margin").width + UM.Theme.getSize("default_margin").width + leftPadding: contentLeftPadding + UM.Theme.getSize("default_margin").width anchors.right: downArrow.left wrapMode: Text.NoWrap + font: textFont text: { if (control.delegateModel.count == 0) @@ -176,11 +179,12 @@ ComboBox id: delegateLabel // FIXME: Somehow the top/bottom anchoring is not correct on Linux and it results in invisible texts. anchors.fill: parent - anchors.leftMargin: UM.Theme.getSize("setting_unit_margin").width + anchors.leftMargin: contentLeftPadding anchors.rightMargin: UM.Theme.getSize("setting_unit_margin").width text: delegateItem.text textFormat: control.textFormat + font: textFont color: UM.Theme.getColor("setting_control_text") elide: Text.ElideRight wrapMode: Text.NoWrap From fd546c347e5f9f5e87862fb75adf1dabe9dae7e6 Mon Sep 17 00:00:00 2001 From: xommit <70339941+xommit@users.noreply.github.com> Date: Thu, 17 Nov 2022 15:16:38 +0100 Subject: [PATCH 089/185] Update cura.po --- resources/i18n/fr_FR/cura.po | 340 +++++++++++++++++++---------------- 1 file changed, 190 insertions(+), 150 deletions(-) diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index ef78e258a2..f73616dbc6 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -1,12 +1,10 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 Ultimaker B.V. +# This file is distributed under the same license as the Cura package. # -#, fuzzy msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: Cura 5.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-09-27 14:50+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -150,13 +148,13 @@ msgctxt "@label Don't translate the XML tag !" msgid "" "The file {0} already exists. Are you sure you want to " "overwrite it?" -msgstr "Le fichier {0} existe déjà. Êtes-vous sûr de vouloir le remplacer ?" +msgstr "Le fichier {0} existe déjà. Êtes-vous sûr de vouloir le remplacer?" #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/ContainerManager.py:459 #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/ContainerManager.py:462 msgctxt "@info:status" msgid "Invalid file URL:" -msgstr "URL de fichier invalide :" +msgstr "URL de fichier invalide:" #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/cura_empty_instance_containers.py:36 msgctxt "@info:not supported profile" @@ -166,7 +164,7 @@ msgstr "Non pris en charge" #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/cura_empty_instance_containers.py:55 msgctxt "@info:No intent profile selected" msgid "Default" -msgstr "Default" +msgstr "Défaut" #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/MachineManager.py:745 #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:219 @@ -178,7 +176,7 @@ msgstr "Buse" msgctxt "@info:message Followed by a list of settings." msgid "" "Settings have been changed to match the current availability of extruders:" -msgstr "Les paramètres ont été modifiés pour correspondre aux extrudeuses actuellement disponibles :" +msgstr "Les paramètres ont été modifiés pour correspondre aux extrudeuses actuellement disponibles:" #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/MachineManager.py:890 msgctxt "@info:title" @@ -212,7 +210,7 @@ msgctxt "@info:status Don't translate the XML tag !" msgid "" "Failed to export profile to {0}: Writer plugin reported " "failure." -msgstr "Échec de l'exportation du profil vers {0} : le plug-in du générateur a rapporté une erreur." +msgstr "Échec de l'exportation du profil vers {0}: le plugin du générateur a rapporté une erreur." #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/CuraContainerRegistry.py:171 #, python-brace-format @@ -229,7 +227,7 @@ msgstr "L'exportation a réussi" #, python-brace-format msgctxt "@info:status Don't translate the XML tags !" msgid "Failed to import profile from {0}: {1}" -msgstr "Impossible d'importer le profil depuis {0} : {1}" +msgstr "Impossible d'importer le profil depuis {0}: {1}" #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/CuraContainerRegistry.py:209 #, python-brace-format @@ -248,7 +246,7 @@ msgstr "Aucun profil personnalisé à importer dans le fichier {0}!" msgid "Failed to import profile from {0}:" -msgstr "Échec de l'importation du profil depuis le fichier {0} :" +msgstr "Échec de l'importation du profil depuis le fichier {0}:" #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/CuraContainerRegistry.py:252 #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/CuraContainerRegistry.py:262 @@ -309,7 +307,7 @@ msgctxt "@info:status" msgid "" "Quality type '{0}' is not compatible with the current active machine " "definition '{1}'." -msgstr "Le type de qualité « {0} » n'est pas compatible avec la définition actuelle de la machine active « {1} »." +msgstr "Le type de qualité '{0}' n'est pas compatible avec la définition actuelle de la machine active '{1}'." #: /Users/c.lamboo/ultimaker/Cura/cura/Settings/CuraContainerRegistry.py:488 #, python-brace-format @@ -318,8 +316,9 @@ msgid "" "Warning: The profile is not visible because its quality type '{0}' is not " "available for the current configuration. Switch to a material/nozzle " "combination that can use this quality type." -msgstr "Avertissement : le profil n'est pas visible car son type de qualité « {0} » n'est pas disponible pour la configuration actuelle. Passez à une combinaison" -" matériau/buse qui peut utiliser ce type de qualité." +msgstr "" +"Avertissement: le profil n'est pas visible car son type de qualité '{0}' n'est pas disponible pour la configuration actuelle. Passez à une combinaison " +"matériau/buse qui peut utiliser ce type de qualité." #: /Users/c.lamboo/ultimaker/Cura/cura/MultiplyObjectsJob.py:30 msgctxt "@info:status" @@ -477,7 +476,7 @@ msgstr "Pas écrasé" #: /Users/c.lamboo/ultimaker/Cura/cura/Machines/Models/IntentSelectionModel.py:61 msgctxt "@label" msgid "Default" -msgstr "Default" +msgstr "Défaut" #: /Users/c.lamboo/ultimaker/Cura/cura/Machines/Models/IntentTranslations.py:14 #: /Users/c.lamboo/ultimaker/Cura/cura/Machines/Models/IntentCategoryModel.py:45 @@ -580,7 +579,7 @@ msgstr "Imprimantes préréglées" #, python-brace-format msgctxt "@label {0} is the name of a printer that's about to be deleted." msgid "Are you sure you wish to remove {0}? This cannot be undone!" -msgstr "Voulez-vous vraiment supprimer l'objet {0} ? Cette action est irréversible !" +msgstr "Voulez-vous vraiment supprimer l'objet {0}? Cette action est irréversible!" #: /Users/c.lamboo/ultimaker/Cura/cura/Machines/Models/MaterialManagementModel.py:232 msgctxt "@label" @@ -688,7 +687,7 @@ msgstr "Volume d'impression" #: /Users/c.lamboo/ultimaker/Cura/cura/Backups/Backup.py:115 msgctxt "@info:backup_failed" msgid "Could not create archive from user data directory: {}" -msgstr "Impossible de créer une archive à partir du répertoire de données de l'utilisateur : {}" +msgstr "Impossible de créer une archive à partir du répertoire de données de l'utilisateur: {}" #: /Users/c.lamboo/ultimaker/Cura/cura/Backups/Backup.py:122 #: /Users/c.lamboo/ultimaker/Cura/cura/Backups/Backup.py:159 @@ -711,7 +710,7 @@ msgstr "A essayé de restaurer une sauvegarde Cura supérieure à la version act #: /Users/c.lamboo/ultimaker/Cura/cura/Backups/Backup.py:158 msgctxt "@info:backup_failed" msgid "The following error occurred while trying to restore a Cura backup:" -msgstr "L'erreur suivante s'est produite lors de la restauration d'une sauvegarde Cura :" +msgstr "L'erreur suivante s'est produite lors de la restauration d'une sauvegarde Cura:" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:107 msgctxt "@title:window" @@ -820,25 +819,25 @@ msgstr "OpenGL" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:264 msgctxt "@label" msgid "Not yet initialized" -msgstr "Non ancora inizializzato" +msgstr "Pas encore initialisé" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:267 #, python-brace-format msgctxt "@label OpenGL version" msgid "
  • OpenGL Version: {version}
  • " -msgstr "
  • Version OpenGL : {version}
  • " +msgstr "
  • Version OpenGL: {version}
  • " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:268 #, python-brace-format msgctxt "@label OpenGL vendor" msgid "
  • OpenGL Vendor: {vendor}
  • " -msgstr "
  • Revendeur OpenGL : {vendor}
  • " +msgstr "
  • Revendeur OpenGL: {vendor}
  • " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:269 #, python-brace-format msgctxt "@label OpenGL renderer" msgid "
  • OpenGL Renderer: {renderer}
  • " -msgstr "
  • Moteur de rendu OpenGL : {renderer}
  • " +msgstr "
  • Moteur de rendu OpenGL: {renderer}
  • " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:304 msgctxt "@title:groupbox" @@ -915,7 +914,7 @@ msgstr "Modifier le G-Code" #: /Users/c.lamboo/ultimaker/Cura/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py:66 msgctxt "@info:status" msgid "There are no file formats available to write with!" -msgstr "Aucun format de fichier n'est disponible pour écriture !" +msgstr "Aucun format de fichier n'est disponible pour écriture!" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/PrintJobUploadQueueFullMessage.py:16 msgctxt "@info:status" @@ -961,7 +960,7 @@ msgstr[1] "... et {0} autres" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:57 msgctxt "info:status" msgid "Printers added from Digital Factory:" -msgstr "Imprimantes ajoutées à partir de Digital Factory :" +msgstr "Imprimantes ajoutées à partir de Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/PrintJobUploadBlockedMessage.py:15 msgctxt "@info:status" @@ -986,7 +985,7 @@ msgstr "Votre imprimante {printer_name} pourrait être connectée via le #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:26 msgctxt "@info:title" msgid "Are you ready for cloud printing?" -msgstr "Êtes-vous prêt pour l'impression dans le cloud ?" +msgstr "Êtes-vous prêt pour l'impression dans le cloud?" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/CloudFlowMessage.py:30 msgctxt "@action" @@ -1060,8 +1059,8 @@ msgstr "Configurer le groupe" msgctxt "info:status" msgid "This printer is not linked to the Digital Factory:" msgid_plural "These printers are not linked to the Digital Factory:" -msgstr[0] "Cette imprimante n'est pas associée à Digital Factory :" -msgstr[1] "Ces imprimantes ne sont pas associées à Digital Factory :" +msgstr[0] "Cette imprimante n'est pas associée à Digital Factory:" +msgstr[1] "Ces imprimantes ne sont pas associées à Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 @@ -1178,12 +1177,12 @@ msgstr "Pour supprimer {printer_name} définitivement, visitez le site {digital_ #, python-brace-format msgctxt "@message {printer_name} is replaced with the name of the printer" msgid "Are you sure you want to remove {printer_name} temporarily?" -msgstr "Voulez-vous vraiment supprimer {printer_name} temporairement ?" +msgstr "Voulez-vous vraiment supprimer {printer_name} temporairement?" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:474 msgctxt "@title:window" msgid "Remove printers?" -msgstr "Supprimer des imprimantes ?" +msgstr "Supprimer des imprimantes?" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:477 #, python-brace-format @@ -1196,8 +1195,8 @@ msgid_plural "" "You are about to remove {0} printers from Cura. This action cannot be " "undone.\n" "Are you sure you want to continue?" -msgstr[0] "Vous êtes sur le point de supprimer {0} imprimante de Cura. Cette action est irréversible.\nVoulez-vous vraiment continuer ?" -msgstr[1] "Vous êtes sur le point de supprimer {0} imprimantes de Cura. Cette action est irréversible.\nVoulez-vous vraiment continuer ?" +msgstr[0] "Vous êtes sur le point de supprimer {0} imprimante de Cura. Cette action est irréversible.\nVoulez-vous vraiment continuer?" +msgstr[1] "Vous êtes sur le point de supprimer {0} imprimantes de Cura. Cette action est irréversible.\nVoulez-vous vraiment continuer?" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:484 msgctxt "@label" @@ -1205,7 +1204,7 @@ msgid "" "You are about to remove all printers from Cura. This action cannot be " "undone.\n" "Are you sure you want to continue?" -msgstr "Vous êtes sur le point de supprimer toutes les imprimantes de Cura. Cette action est irréversible.\nVoulez-vous vraiment continuer ?" +msgstr "Vous êtes sur le point de supprimer toutes les imprimantes de Cura. Cette action est irréversible.\nVoulez-vous vraiment continuer?" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:276 msgctxt "@action:button" @@ -1221,7 +1220,7 @@ msgstr "Suivre l'impression dans Ultimaker Digital Factory" #, python-brace-format msgctxt "@error:send" msgid "Unknown error code when uploading print job: {0}" -msgstr "Code d'erreur inconnu lors du téléchargement d'une tâche d'impression : {0}" +msgstr "Code d'erreur inconnu lors du téléchargement d'une tâche d'impression: {0}" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFWriter/__init__.py:28 msgctxt "@item:inlistbox" @@ -1241,7 +1240,7 @@ msgstr "Erreur d'écriture du fichier 3MF." #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:31 msgctxt "@error:zip" msgid "3MF Writer plug-in is corrupt." -msgstr "Le plug-in 3MF Writer est corrompu." +msgstr "Le plugin 3MF Writer est corrompu." #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFWriter/ThreeMFWorkspaceWriter.py:37 msgctxt "@error" @@ -1320,7 +1319,7 @@ msgstr "Impossible de lire le fichier de données d'exemple." #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/UFPWriter.py:178 msgctxt "@info:error" msgid "Can't write to UFP file:" -msgstr "Impossible d'écrire dans le fichier UFP :" +msgstr "Impossible d'écrire dans le fichier UFP:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 @@ -1440,12 +1439,12 @@ msgstr "Accepter" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/LicenseModel.py:77 msgctxt "@title:window" msgid "Plugin License Agreement" -msgstr "Plug-in d'accord de licence" +msgstr "Plugin d'accord de licence" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:144 msgctxt "@info:generic" msgid "Do you want to sync material and software packages with your account?" -msgstr "Vous souhaitez synchroniser du matériel et des logiciels avec votre compte ?" +msgstr "Vous souhaitez synchroniser du matériel et des logiciels avec votre compte?" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 @@ -1476,7 +1475,7 @@ msgstr "Échec de téléchargement des plugins {}" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/LocalPackageList.py:28 msgctxt "@label" msgid "Installed Plugins" -msgstr "Plug-ins installés" +msgstr "Plugins installés" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/LocalPackageList.py:29 msgctxt "@label" @@ -1486,7 +1485,7 @@ msgstr "Matériaux installés" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/LocalPackageList.py:33 msgctxt "@label" msgid "Bundled Plugins" -msgstr "Plug-ins groupés" +msgstr "Plugins groupés" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/LocalPackageList.py:34 msgctxt "@label" @@ -1639,7 +1638,7 @@ msgctxt "@info:status" msgid "" "Unable to slice with the current settings. The following settings have " "errors: {0}" -msgstr "Impossible de couper avec les paramètres actuels. Les paramètres suivants contiennent des erreurs : {0}" +msgstr "Impossible de couper avec les paramètres actuels. Les paramètres suivants contiennent des erreurs: {0}" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:461 #, python-brace-format @@ -1647,7 +1646,7 @@ msgctxt "@info:status" msgid "" "Unable to slice due to some per-model settings. The following settings have " "errors on one or more models: {error_labels}" -msgstr "Impossible de couper en raison de certains paramètres par modèle. Les paramètres suivants contiennent des erreurs sur un ou plusieurs modèles : {error_labels}" +msgstr "Impossible de couper en raison de certains paramètres par modèle. Les paramètres suivants contiennent des erreurs sur un ou plusieurs modèles: {error_labels}" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:473 msgctxt "@info:status" @@ -1670,8 +1669,11 @@ msgid "" "- Fit within the build volume\n" "- Are assigned to an enabled extruder\n" "- Are not all set as modifier meshes" -msgstr "Veuillez vérifier les paramètres et si vos modèles :\n- S'intègrent dans le volume de fabrication\n- Sont affectés à un extrudeur activé\n- N sont pas" -" tous définis comme des mailles de modificateur" +msgstr "" +"Veuillez vérifier les paramètres et si vos modèles:\n" +"- S'intègrent dans le volume de fabrication\n" +"- Sont affectés à un extrudeur activé\n" +"- N sont pas tous définis comme des mailles de modificateur" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:52 #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/ProcessSlicedLayersJob.py:260 @@ -1706,18 +1708,19 @@ msgid "" "The material used in this project relies on some material definitions not " "available in Cura, this might produce undesirable print results. We highly " "recommend installing the full material package from the Marketplace." -msgstr "Il materiale utilizzato in questo progetto si basa su alcune definizioni di materiale non disponibili in Cura; ciò potrebbe produrre risultati di stampa" -" indesiderati. Si consiglia vivamente di installare il pacchetto completo di materiali dal Marketplace." +msgstr "" +"Le matériau utilisé dans ce projet repose sur certaines définitions de matériaux non disponibles dans Cura, ce qui peut produire des résultats d’impression indésirables. Nous vous " +"recommandons vivement d’installer l’ensemble complet des matériaux depuis le Marketplace." #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/WorkspaceDialog.py:392 msgctxt "@info:title" msgid "Material profiles not installed" -msgstr "Profili del materiale non installati" +msgstr "Profils des matériaux non installés" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/WorkspaceDialog.py:405 msgctxt "@action:button" msgid "Install Materials" -msgstr "Installa materiali" +msgstr "Installer les matériaux" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:545 #, python-brace-format @@ -1740,7 +1743,7 @@ msgctxt "@info:error Don't translate the XML tags or !" msgid "" "Project file {0} is suddenly inaccessible: {1}" "." -msgstr "Le fichier de projet {0} est soudainement inaccessible : {1}." +msgstr "Le fichier de projet {0} est soudainement inaccessible: {1}." #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:651 #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:659 @@ -1755,7 +1758,7 @@ msgstr "Impossible d'ouvrir le fichier de projet" msgctxt "@info:error Don't translate the XML tags or !" msgid "" "Project file {0} is corrupt: {1}." -msgstr "Le fichier de projet {0} est corrompu : {1}." +msgstr "Le fichier de projet {0} est corrompu: {1}." #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723 #, python-brace-format @@ -1791,9 +1794,11 @@ msgid "" "p>\n" "

    View print quality " "guide

    " -msgstr "

    Un ou plusieurs modèles 3D peuvent ne pas s'imprimer de manière optimale en raison de la taille du modèle et de la configuration matérielle :

    \n

    {model_names}

    \n

    Découvrez" -" comment optimiser la qualité et la fiabilité de l'impression.

    \n

    Consultez le guide de qualité" -" d'impression

    " +msgstr "" +"

    Un ou plusieurs modèles 3D peuvent ne pas s'imprimer de manière optimale en raison de la taille du modèle et de la configuration matérielle:

    \n" +"

    {model_names}

    \n" +"

    Découvrez comment optimiser la qualité et la fiabilité de l'impression.

    \n" +"

    Consultez le guide de qualité d'impression

    " #: /Users/c.lamboo/ultimaker/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:42 msgctxt "@item:inmenu" @@ -1819,7 +1824,7 @@ msgstr "Connecté via USB" msgctxt "@label" msgid "" "A USB print is in progress, closing Cura will stop this print. Are you sure?" -msgstr "Une impression USB est en cours, la fermeture de Cura arrêtera cette impression. Êtes-vous sûr ?" +msgstr "Une impression USB est en cours, la fermeture de Cura arrêtera cette impression. Êtes-vous sûr?" #: /Users/c.lamboo/ultimaker/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:135 msgctxt "@message" @@ -1926,8 +1931,9 @@ msgid "" "New features or bug-fixes may be available for your {machine_name}! If you " "haven't done so already, it is recommended to update the firmware on your " "printer to version {latest_version}." -msgstr "De nouvelles fonctionnalités ou des correctifs de bugs sont disponibles pour votre {machine_name} ! Si vous ne l'avez pas encore fait, il est recommandé" -" de mettre à jour le micrologiciel de votre imprimante avec la version {latest_version}." +msgstr "" +"De nouvelles fonctionnalités ou des correctifs de bugs sont disponibles pour votre {machine_name} ! Si vous ne l'avez pas encore fait, il est recommandé de mettre à jour le micrologiciel de " +"votre imprimante avec la version {latest_version}." #: /Users/c.lamboo/ultimaker/Cura/plugins/FirmwareUpdateChecker/FirmwareUpdateCheckerMessage.py:22 #, python-format @@ -2178,9 +2184,9 @@ msgid "" "to block more light coming through. For height maps lighter pixels signify " "higher terrain, so lighter pixels should correspond to thicker locations in " "the generated 3D model." -msgstr "Pour les lithophanies, les pixels foncés doivent correspondre à des emplacements plus épais afin d'empêcher la lumière de passer. Pour des cartes de hauteur," -" les pixels clairs signifient un terrain plus élevé, de sorte que les pixels clairs doivent correspondre à des emplacements plus épais dans le modèle 3D" -" généré." +msgstr "" +"Pour les lithophanies, les pixels foncés doivent correspondre à des emplacements plus épais afin d'empêcher la lumière de passer. Pour des cartes de hauteur, les pixels clairs signifient un " +"terrain plus élevé, de sorte que les pixels clairs doivent correspondre à des emplacements plus épais dans le modèle 3D généré." #: /Users/c.lamboo/ultimaker/Cura/plugins/ImageReader/ConfigUI.qml:205 msgctxt "@action:label" @@ -2202,8 +2208,8 @@ msgctxt "@info:tooltip" msgid "" "For lithophanes a simple logarithmic model for translucency is available. " "For height maps the pixel values correspond to heights linearly." -msgstr "Pour les lithophanes, un modèle logarithmique simple de la translucidité est disponible. Pour les cartes de hauteur, les valeurs des pixels correspondent" -" aux hauteurs de façon linéaire." +msgstr "" +"Pour les lithophanes, un modèle logarithmique simple de la translucidité est disponible. Pour les cartes de hauteur, les valeurs des pixels correspondent aux hauteurs de façon linéaire." #: /Users/c.lamboo/ultimaker/Cura/plugins/ImageReader/ConfigUI.qml:242 msgctxt "@action:label" @@ -2216,8 +2222,9 @@ msgid "" "The percentage of light penetrating a print with a thickness of 1 " "millimeter. Lowering this value increases the contrast in dark regions and " "decreases the contrast in light regions of the image." -msgstr "Le pourcentage de lumière pénétrant une impression avec une épaisseur de 1 millimètre. La diminution de cette valeur augmente le contraste dans les régions" -" sombres et diminue le contraste dans les régions claires de l'image." +msgstr "" +"Le pourcentage de lumière pénétrant une impression avec une épaisseur de 1 millimètre. La diminution de cette valeur augmente le contraste dans les régions sombres et diminue le contraste " +"dans les régions claires de l'image." #: /Users/c.lamboo/ultimaker/Cura/plugins/ImageReader/ConfigUI.qml:274 msgctxt "@action:label" @@ -2240,7 +2247,7 @@ msgstr "OK" #: /Users/c.lamboo/ultimaker/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:17 msgctxt "@title:window" msgid "Post Processing Plugin" -msgstr "Plug-in de post-traitement" +msgstr "Plugin de post-traitement" #: /Users/c.lamboo/ultimaker/Cura/plugins/PostProcessingPlugin/PostProcessingPlugin.qml:57 msgctxt "@label" @@ -2439,8 +2446,8 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Les flux de webcam des imprimantes cloud ne peuvent pas être visualisés depuis Ultimaker Cura. Cliquez sur « Gérer l'imprimante » pour visiter Ultimaker" -" Digital Factory et voir cette webcam." +msgstr "" +"Les flux de webcam des imprimantes cloud ne peuvent pas être visualisés depuis Ultimaker Cura. Cliquez sur « Gérer l'imprimante » pour visiter Ultimaker Digital Factory et voir cette webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2507,7 +2514,7 @@ msgstr "Premier disponible" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Surveillez vos imprimantes à distance grâce à Ultimaker Digital Factory" +msgstr "Surveillez vos imprimantes à distance avec Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2527,9 +2534,9 @@ msgid "" "your printer to your WIFI network. If you don't connect Cura with your " "printer, you can still use a USB drive to transfer g-code files to your " "printer." -msgstr "Pour imprimer directement sur votre imprimante via le réseau, assurez-vous que votre imprimante est connectée au réseau via un câble Ethernet ou en connectant" -" votre imprimante à votre réseau Wi-Fi. Si vous ne connectez pas Cura avec votre imprimante, vous pouvez utiliser une clé USB pour transférer les fichiers" -" g-code sur votre imprimante." +msgstr "" +"Pour imprimer directement sur votre imprimante via le réseau, assurez-vous que votre imprimante est connectée au réseau via un câble Ethernet ou en connectant votre imprimante à votre réseau " +"Wi-Fi. Si vous ne connectez pas Cura avec votre imprimante, vous pouvez utiliser une clé USB pour transférer les fichiers g-code sur votre imprimante." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/DiscoverUM3Action.qml:51 msgctxt "@label" @@ -2732,7 +2739,7 @@ msgstr "Profils" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraDrive/src/qml/components/BackupListItemDetails.qml:53 msgctxt "@backuplist:label" msgid "Plugins" -msgstr "Plug-ins" +msgstr "Plugins" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraDrive/src/qml/components/BackupListFooter.qml:22 msgctxt "@button" @@ -2823,8 +2830,8 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura recueille des données anonymes afin d'améliorer la qualité d'impression et l'expérience utilisateur. Voici un exemple de toutes les données" -" partagées :" +msgstr "" +"Ultimaker Cura recueille des données anonymes afin d'améliorer la qualité d'impression et l'expérience utilisateur. Voici un exemple de toutes les données partagées :" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2839,12 +2846,12 @@ msgstr "Autoriser l'envoi de données anonymes" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/resources/qml/SaveProjectFilesPage.qml:216 msgctxt "@option" msgid "Save Cura project and print file" -msgstr "Salva progetto Cura e stampa file" +msgstr "Sauvegarder le projet Cura et imprimer le fichier" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/resources/qml/SaveProjectFilesPage.qml:217 msgctxt "@option" msgid "Save Cura project" -msgstr "Salva progetto Cura" +msgstr "Sauvegarder le projet Cura" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" @@ -2867,8 +2874,9 @@ msgid "" "To make sure your prints will come out great, you can now adjust your " "buildplate. When you click 'Move to Next Position' the nozzle will move to " "the different positions that can be adjusted." -msgstr "Pour obtenir des résultats d'impression optimaux, vous pouvez maintenant régler votre plateau. Quand vous cliquez sur 'Aller à la position suivante', la" -" buse se déplacera vers les différentes positions pouvant être réglées." +msgstr "" +"Pour obtenir des résultats d'impression optimaux, vous pouvez maintenant régler votre plateau. Quand vous cliquez sur 'Aller à la position suivante', la buse se déplacera vers les " +"différentes positions pouvant être réglées." #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:52 msgctxt "@label" @@ -2876,8 +2884,8 @@ msgid "" "For every position; insert a piece of paper under the nozzle and adjust the " "print build plate height. The print build plate height is right when the " "paper is slightly gripped by the tip of the nozzle." -msgstr "Pour chacune des positions ; glissez un bout de papier sous la buse et ajustez la hauteur du plateau. La hauteur du plateau est juste lorsque la pointe" -" de la buse gratte légèrement le papier." +msgstr "" +"Pour chacune des positions ; glissez un bout de papier sous la buse et ajustez la hauteur du plateau. La hauteur du plateau est juste lorsque la pointe de la buse gratte légèrement le papier." #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/BedLevelMachineAction.qml:67 msgctxt "@action:button" @@ -2892,7 +2900,7 @@ msgstr "Aller à la position suivante" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/PackageCardHeader.qml:172 msgctxt "@label Is followed by the name of an author" msgid "By" -msgstr "Per mezzo di" +msgstr "Par" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/PackageCardHeader.qml:207 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/OnboardBanner.qml:101 @@ -2948,14 +2956,14 @@ msgstr "Mise à jour" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:8 msgctxt "@header" msgid "Install Plugins" -msgstr "Installer les plug-ins" +msgstr "Installer les plugins" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Simplifiez votre flux de travail et personnalisez votre expérience Ultimaker Cura avec des plug-ins fournis par notre incroyable communauté d'utilisateurs." +msgstr "Simplifiez votre flux de travail et personnalisez votre expérience Ultimaker Cura avec des plugins fournis par notre incroyable communauté d'utilisateurs." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -3000,7 +3008,7 @@ msgstr "Contrat de licence du plugin" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/LicenseDialog.qml:47 msgctxt "@text" msgid "Please read and agree with the plugin licence." -msgstr "Veuillez lire et accepter la licence du plug-in." +msgstr "Veuillez lire et accepter la licence du plugin." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/LicenseDialog.qml:70 msgctxt "@button" @@ -3075,7 +3083,7 @@ msgstr "Optimisé pour Air Manager" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/PackagePage.qml:243 msgctxt "@button" msgid "Visit plug-in website" -msgstr "Visitez le site Web du plug-in" +msgstr "Visitez le site Web du plugin" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/PackagePage.qml:243 msgctxt "@button" @@ -3140,7 +3148,7 @@ msgstr "Charger plus" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" msgid "Ultimaker Verified Plug-in" -msgstr "Plug-in Ultimaker vérifié" +msgstr "Plugin Ultimaker vérifié" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" @@ -3162,12 +3170,12 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Gérez vos plug-ins Ultimaker Cura et vos profils matériaux ici. Assurez-vous de maintenir vos plug-ins à jour et de sauvegarder régulièrement votre configuration." +msgstr "Gérez vos plugins Ultimaker Cura et vos profils matériaux ici. Assurez-vous de maintenir vos plugins à jour et de sauvegarder régulièrement votre configuration." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" msgid "Install missing Materials" -msgstr "Installa materiali mancanti" +msgstr "Installer les matériaux manquants" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Marketplace.qml:87 msgctxt "@title" @@ -3177,7 +3185,7 @@ msgstr "Chargement..." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Marketplace.qml:148 msgctxt "@button" msgid "Plugins" -msgstr "Plug-ins" +msgstr "Plugins" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Marketplace.qml:156 msgctxt "@button" @@ -3206,8 +3214,11 @@ msgid "" "- Check if the printer is turned on.\n" "- Check if the printer is connected to the network.\n" "- Check if you are signed in to discover cloud-connected printers." -msgstr "Assurez-vous que votre imprimante est connectée :\n- Vérifiez si l'imprimante est sous tension.\n- Vérifiez si l'imprimante est connectée au réseau.- Vérifiez" -" si vous êtes connecté pour découvrir les imprimantes connectées au cloud." +msgstr "" +"Assurez-vous que votre imprimante est connectée:\n" +"- Vérifiez si l'imprimante est sous tension.\n" +"- Vérifiez si l'imprimante est connectée au réseau.\n" +"- Vérifiez si vous êtes connecté pour découvrir les imprimantes connectées au cloud." #: /Users/c.lamboo/ultimaker/Cura/plugins/MonitorStage/MonitorMain.qml:113 msgctxt "@info" @@ -3359,7 +3370,8 @@ msgctxt "@label" msgid "" "The material used in this project is currently not installed in Cura.
    Install the material profile and reopen the project." -msgstr "Le matériau utilisé dans ce projet n'est actuellement pas installé dans Cura.
    Installez le profil du matériau et rouvrez le projet." +msgstr "" +"Le matériau utilisé dans ce projet n'est actuellement pas installé dans Cura.
    Installer le profil de matériau et rouvrir le projet." #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/WorkspaceDialog.qml:515 msgctxt "@action:button" @@ -3369,12 +3381,12 @@ msgstr "Ouvrir" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/WorkspaceDialog.qml:521 msgctxt "@action:button" msgid "Open project anyway" -msgstr "Apri il progetto comunque" +msgstr "Ouvrir tout de même le projet" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/WorkspaceDialog.qml:530 msgctxt "@action:button" msgid "Install missing material" -msgstr "Installa materiale mancante" +msgstr "Installer le matériel manquant" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml:41 msgctxt "@label" @@ -3443,16 +3455,16 @@ msgid "" "Firmware is the piece of software running directly on your 3D printer. This " "firmware controls the step motors, regulates the temperature and ultimately " "makes your printer work." -msgstr "Le firmware est le logiciel fonctionnant directement dans votre imprimante 3D. Ce firmware contrôle les moteurs pas à pas, régule la température et surtout," -" fait que votre machine fonctionne." +msgstr "" +"Le firmware est le logiciel fonctionnant directement dans votre imprimante 3D. Ce firmware contrôle les moteurs pas à pas, régule la température et surtout, fait que votre machine fonctionne." #: /Users/c.lamboo/ultimaker/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:43 msgctxt "@label" msgid "" "The firmware shipping with new printers works, but new versions tend to have " "more features and improvements." -msgstr "Le firmware fourni avec les nouvelles imprimantes fonctionne, mais les nouvelles versions ont tendance à fournir davantage de fonctionnalités ainsi que" -" des améliorations." +msgstr "" +"Le firmware fourni avec les nouvelles imprimantes fonctionne, mais les nouvelles versions ont tendance à fournir davantage de fonctionnalités ainsi que des améliorations." #: /Users/c.lamboo/ultimaker/Cura/plugins/FirmwareUpdater/FirmwareUpdaterMachineAction.qml:55 msgctxt "@action:button" @@ -3654,7 +3666,10 @@ msgid "" "This setting has a value that is different from the profile.\n" "\n" "Click to restore the value of the profile." -msgstr "Ce paramètre possède une valeur qui est différente du profil.\n\nCliquez pour restaurer la valeur du profil." +msgstr "" +"Ce paramètre possède une valeur qui est différente du profil.\n" +"\n" +"Cliquez pour restaurer la valeur du profil." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Settings/SettingItem.qml:334 msgctxt "@label" @@ -3663,7 +3678,10 @@ msgid "" "set.\n" "\n" "Click to restore the calculated value." -msgstr "Ce paramètre est normalement calculé mais il possède actuellement une valeur absolue définie.\n\nCliquez pour restaurer la valeur calculée." +msgstr "" +"Ce paramètre est normalement calculé mais il possède actuellement une valeur absolue définie.\n" +"\n" +"Cliquez pour restaurer la valeur calculée." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Settings/SettingView.qml:48 msgctxt "@label:textbox" @@ -3708,12 +3726,15 @@ msgid "" "value.\n" "\n" "Click to make these settings visible." -msgstr "Certains paramètres masqués utilisent des valeurs différentes de leur valeur normalement calculée.\n\nCliquez pour rendre ces paramètres visibles." +msgstr "" +"Certains paramètres masqués utilisent des valeurs différentes de leur valeur normalement calculée.\n" +"\n" +"Cliquez pour rendre ces paramètres visibles." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/MainWindow/MainWindowHeader.qml:135 msgctxt "@action:button" msgid "Marketplace" -msgstr "Marché en ligne" +msgstr "Marketplace" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/MainWindow/ApplicationMenu.qml:63 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Menus/SettingsMenu.qml:13 @@ -3865,8 +3886,8 @@ msgid "" "It seems like you don't have any compatible printers connected to Digital " "Factory. Make sure your printer is connected and it's running the latest " "firmware." -msgstr "Il semble que vous n'ayez aucune imprimante compatible connectée à Digital Factory. Assurez-vous que votre imprimante est connectée et qu'elle utilise" -" le dernier micrologiciel." +msgstr "" +"Il semble que vous n'ayez aucune imprimante compatible connectée à Digital Factory. Assurez-vous que votre imprimante est connectée et qu'elle utilise le dernier micrologiciel." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/Materials/MaterialsSyncDialog.qml:585 msgctxt "@button" @@ -4156,12 +4177,12 @@ msgstr "Interface" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:215 msgctxt "@heading" msgid "-- incomplete --" -msgstr "--complet --" +msgstr "-- incomplet —-" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:261 msgctxt "@label" msgid "Currency:" -msgstr "Devise :" +msgstr "Devise:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:277 msgctxt "" @@ -4217,8 +4238,8 @@ msgctxt "@info:tooltip" msgid "" "Highlight missing or extraneous surfaces of the model using warning signs. " "The toolpaths will often be missing parts of the intended geometry." -msgstr "Surlignez les surfaces du modèle manquantes ou étrangères en utilisant les signes d'avertissement. Les Toolpaths seront souvent les parties manquantes" -" de la géométrie prévue." +msgstr "" +"Surlignez les surfaces du modèle manquantes ou étrangères en utilisant les signes d'avertissement. Les Toolpaths seront souvent les parties manquantes de la géométrie prévue." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:409 msgctxt "@option:check" @@ -4322,7 +4343,7 @@ msgstr "Quel type de rendu de la caméra doit-il être utilisé?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:569 msgctxt "@window:text" msgid "Camera rendering:" -msgstr "Rendu caméra :" +msgstr "Rendu caméra:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:576 msgid "Perspective" @@ -4359,7 +4380,7 @@ msgstr "Les objets doivent-ils être supprimés du plateau de fabrication avant #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:646 msgctxt "@option:check" msgid "Clear buildplate before loading model into the single instance" -msgstr "Supprimez les objets du plateau de fabrication avant de charger un modèle dans l'instance unique" +msgstr "Supprimer les objets du plateau avant de charger un modèle dans l'instance unique" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:656 msgctxt "@info:tooltip" @@ -4446,8 +4467,9 @@ msgid "" "When you have made changes to a profile and switched to a different one, a " "dialog will be shown asking whether you want to keep your modifications or " "not, or you can choose a default behaviour and never show that dialog again." -msgstr "Lorsque vous apportez des modifications à un profil puis passez à un autre profil, une boîte de dialogue apparaît, vous demandant si vous souhaitez conserver" -" les modifications. Vous pouvez aussi choisir une option par défaut, et le dialogue ne s'affichera plus." +msgstr "" +"Lorsque vous apportez des modifications à un profil puis passez à un autre profil, une boîte de dialogue apparaît, vous demandant si vous souhaitez conserver les modifications. Vous pouvez " +"aussi choisir une option par défaut, et le dialogue ne s'affichera plus." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:801 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml:36 @@ -4489,8 +4511,9 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "Les données anonymes de votre impression doivent-elles être envoyées à Ultimaker ? Notez qu'aucun modèle, aucune adresse IP ni aucune autre information" -" permettant de vous identifier personnellement ne seront envoyés ou stockés." +msgstr "" +"Les données anonymes de votre impression doivent-elles être envoyées à Ultimaker ? Notez qu'aucun modèle, aucune adresse IP ni aucune autre information permettant de vous identifier " +"personnellement ne seront envoyés ou stockés." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4537,8 +4560,8 @@ msgctxt "@info:tooltip" msgid "" "Should an automatic check for new plugins be done every time Cura is " "started? It is highly recommended that you do not disable this!" -msgstr "Une vérification automatique des nouveaux plugins doit-elle être effectuée à chaque fois que Cura est lancé ? Il est fortement recommandé de ne pas désactiver" -" cette fonction !" +msgstr "" +"Une vérification automatique des nouveaux plugins doit-elle être effectuée à chaque fois que Cura est lancé ? Il est fortement recommandé de ne pas désactiver cette fonction !" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:962 msgctxt "@option:check" @@ -4814,17 +4837,17 @@ msgstr "Connectez-vous à la plateforme Ultimaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" msgid "Add material settings and plugins from the Marketplace" -msgstr "Ajoutez des paramètres de matériaux et des plug-ins depuis la Marketplace" +msgstr "Ajoutez des paramètres de matériaux et des plugins depuis la Marketplace" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:149 msgctxt "@text" msgid "Backup and sync your material settings and plugins" -msgstr "Sauvegardez et synchronisez vos paramètres de matériaux et vos plug-ins" +msgstr "Sauvegardez et synchronisez vos paramètres de matériaux et vos plugins" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Partagez vos idées et obtenez l'aide de plus de 48 000 utilisateurs de la communauté Ultimaker" +msgstr "Partagez vos idées et obtenez l'aide de plus de 48,000 utilisateurs de la communauté Ultimaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4972,7 +4995,9 @@ msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Veuillez suivre ces étapes pour configurer\nUltimaker Cura. Cela ne prendra que quelques instants." +msgstr "" +"Veuillez suivre ces étapes pour configurer\n" +"Ultimaker Cura. Cela ne prendra que quelques instants." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5164,7 +5189,7 @@ msgstr "Sélectionner tous les modèles" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:393 msgctxt "@action:inmenu menubar:edit" msgid "Clear Build Plate" -msgstr "Supprimer les objets du plateau" +msgstr "Supprimer les modèles du plateau" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:403 msgctxt "@action:inmenu menubar:file" @@ -5414,7 +5439,7 @@ msgstr "Cette configuration n'est pas disponible car %1 n'est pas reconnu. Veuil #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationItem.qml:138 msgctxt "@label" msgid "Marketplace" -msgstr "Marché en ligne" +msgstr "Marketplace" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Menus/ConfigurationMenu/ConfigurationMenu.qml:106 msgctxt "@tooltip" @@ -5519,7 +5544,7 @@ msgstr "Gérer la visibilité des paramètres..." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/ChoosePrinterDialog.qml:17 msgctxt "@title:window" msgid "Select Printer" -msgstr "Sélectionner une imprimante" +msgstr "Sélectionner l’imprimante" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/ChoosePrinterDialog.qml:54 msgctxt "@title:label" @@ -5543,8 +5568,9 @@ msgid "" "We have found one or more project file(s) within the files you have " "selected. You can open only one project file at a time. We suggest to only " "import models from those files. Would you like to proceed?" -msgstr "Nous avons trouvé au moins un fichier de projet parmi les fichiers que vous avez sélectionnés. Vous ne pouvez ouvrir qu'un seul fichier de projet à la" -" fois. Nous vous conseillons de n'importer que les modèles de ces fichiers. Souhaitez-vous continuer ?" +msgstr "" +"Nous avons trouvé au moins un fichier de projet parmi les fichiers que vous avez sélectionnés. Vous ne pouvez ouvrir qu'un seul fichier de projet à la fois. Nous vous conseillons de " +"n'importer que les modèles de ces fichiers. Souhaitez-vous continuer?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/OpenFilesIncludingProjectsDialog.qml:64 msgctxt "@action:button" @@ -5589,8 +5615,10 @@ msgid "" "You have customized some profile settings. Would you like to Keep these " "changed settings after switching profiles? Alternatively, you can discard " "the changes to load the defaults from '%1'." -msgstr "Vous avez personnalisé certains paramètres de profil.\nSouhaitez-vous conserver ces paramètres modifiés après avoir changé de profil ?\nVous pouvez également" -" annuler les modifications pour charger les valeurs par défaut de '%1'." +msgstr "" +"Vous avez personnalisé certains paramètres de profil.\n" +"Souhaitez-vous conserver ces paramètres modifiés après avoir changé de profil ?\n" +"Vous pouvez également annuler les modifications pour charger les valeurs par défaut de '%1'." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml:85 msgctxt "@title:column" @@ -5672,7 +5700,9 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura a été développé par Ultimaker B.V. en coopération avec la communauté Ultimaker.\nCura est fier d'utiliser les projets open source suivants :" +msgstr "" +"Cura a été développé par Ultimaker B.V. en coopération avec la communauté Ultimaker.\n" +"Cura est fier d'utiliser les projets open source suivants :" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5806,6 +5836,7 @@ msgid "Support library for scientific computing" msgstr "Prise en charge de la bibliothèque pour le calcul scientifique" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:171 +#, fuzzy msgctxt "@Label Description for application dependency" msgid "Python Error tracking library" msgstr "Bibliothèque de suivi des erreurs Python" @@ -5878,7 +5909,7 @@ msgstr "Surveillez les tâches d'impression et réimprimez à partir de votre hi #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Étendez Ultimaker Cura avec des plug-ins et des profils de matériaux." +msgstr "Étendez Ultimaker Cura avec des plugins et des profils de matériaux." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" @@ -5946,7 +5977,7 @@ msgstr "Le profil personnalisé %1 remplace certains paramètres." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/ProfileWarningReset.qml:79 msgctxt "@info" msgid "Some settings were changed." -msgstr "Alcune impostazioni sono state modificate." +msgstr "Certains paramètres ont été modifiés." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml:78 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedInfillDensitySelector.qml:254 @@ -5963,7 +5994,7 @@ msgstr "Remplissage graduel" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/UnsupportedProfileIndication.qml:31 msgctxt "@error" msgid "Configuration not supported" -msgstr "Configurazione non supportata" +msgstr "Configuration non supportée" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/UnsupportedProfileIndication.qml:39 msgctxt "@message:text %1 is the name the printer uses for 'nozzle'." @@ -5975,7 +6006,7 @@ msgstr "Nessun profilo disponibile per la configurazione del materiale /%1 selez #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/UnsupportedProfileIndication.qml:47 msgctxt "@button:label" msgid "Learn more" -msgstr "Ulteriori informazioni" +msgstr "En savoir plus" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedAdhesionSelector.qml:27 msgctxt "@label" @@ -5987,13 +6018,13 @@ msgctxt "@label" msgid "" "Enable printing a brim or raft. This will add a flat area around or under " "your object which is easy to cut off afterwards." -msgstr "Activez l'impression d'une bordure ou plaquette (Brim/Raft). Cela ajoutera une zone plate autour de ou sous votre objet qui est facile à découper par la" -" suite." +msgstr "" +"Activez l'impression d'une bordure ou plaquette (Brim/Raft). Cela ajoutera une zone plate autour de ou sous votre objet qui est facile à découper par la suite." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedResolutionSelector.qml:27 msgctxt "@label" msgid "Resolution" -msgstr "Risoluzione" +msgstr "Résolution" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/PrintSetupSelector.qml:20 msgctxt "@label shown when we load a Gcode file" @@ -6037,7 +6068,10 @@ msgid "" "profile.\n" "\n" "Click to open the profile manager." -msgstr "Certaines valeurs de paramètre / forçage sont différentes des valeurs enregistrées dans le profil. \n\nCliquez pour ouvrir le gestionnaire de profils." +msgstr "" +"Certaines valeurs de paramètre / forçage sont différentes des valeurs enregistrées dans le profil. \n" +"\n" +"Cliquez pour ouvrir le gestionnaire de profils." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Custom/QualitiesWithIntentMenu.qml:158 msgctxt "@label:header" @@ -6059,8 +6093,8 @@ msgctxt "@tooltip" msgid "" "The target temperature of the heated bed. The bed will heat up or cool down " "towards this temperature. If this is 0, the bed heating is turned off." -msgstr "Température cible du plateau chauffant. Le plateau sera chauffé ou refroidi pour tendre vers cette température. Si la valeur est 0, le chauffage du plateau" -" sera éteint." +msgstr "" +"Température cible du plateau chauffant. Le plateau sera chauffé ou refroidi pour tendre vers cette température. Si la valeur est 0, le chauffage du plateau sera éteint." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterOutput/HeatedBedBox.qml:88 msgctxt "@tooltip" @@ -6090,8 +6124,9 @@ msgid "" "Heat the bed in advance before printing. You can continue adjusting your " "print while it is heating, and you won't have to wait for the bed to heat up " "when you're ready to print." -msgstr "Préchauffez le plateau avant l'impression. Vous pouvez continuer à ajuster votre impression pendant qu'il chauffe, et vous n'aurez pas à attendre que le" -" plateau chauffe lorsque vous serez prêt à lancer l'impression." +msgstr "" +"Préchauffez le plateau avant l'impression. Vous pouvez continuer à ajuster votre impression pendant qu'il chauffe, et vous n'aurez pas à attendre que le plateau chauffe lorsque vous serez " +"prêt à lancer l'impression." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterOutput/ExtruderBox.qml:40 msgctxt "@label" @@ -6103,8 +6138,9 @@ msgctxt "@tooltip" msgid "" "The target temperature of the hotend. The hotend will heat up or cool down " "towards this temperature. If this is 0, the hotend heating is turned off." -msgstr "Température cible de l'extrémité chauffante. L'extrémité chauffante sera chauffée ou refroidie pour tendre vers cette température. Si la valeur est 0," -" le chauffage de l'extrémité chauffante sera coupé." +msgstr "" +"Température cible de l'extrémité chauffante. L'extrémité chauffante sera chauffée ou refroidie pour tendre vers cette température. Si la valeur est 0, le chauffage de l'extrémité chauffante " +"sera coupé." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterOutput/ExtruderBox.qml:105 msgctxt "@tooltip" @@ -6122,8 +6158,9 @@ msgid "" "Heat the hotend in advance before printing. You can continue adjusting your " "print while it is heating, and you won't have to wait for the hotend to heat " "up when you're ready to print." -msgstr "Préchauffez l'extrémité chauffante avant l'impression. Vous pouvez continuer l'ajustement de votre impression pendant qu'elle chauffe, ce qui vous évitera" -" un temps d'attente lorsque vous serez prêt à lancer l'impression." +msgstr "" +"Préchauffez l'extrémité chauffante avant l'impression. Vous pouvez continuer l'ajustement de votre impression pendant qu'elle chauffe, ce qui vous évitera un temps d'attente lorsque vous " +"serez prêt à lancer l'impression." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterOutput/ExtruderBox.qml:335 msgctxt "@tooltip" @@ -6175,7 +6212,7 @@ msgctxt "@tooltip of G-code command input" msgid "" "Send a custom G-code command to the connected printer. Press 'enter' to send " "the command." -msgstr "Envoyer une commande G-Code personnalisée à l'imprimante connectée. Appuyez sur « Entrée » pour envoyer la commande." +msgstr "Envoyer une commande G-Code personnalisée à l'imprimante connectée. Appuyez sur « Entrée » pour envoyer la commande." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Cura.qml:250 msgctxt "@label" @@ -6196,7 +6233,7 @@ msgstr "Fermeture de %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Cura.qml:597 msgctxt "@label %1 is the application name" msgid "Are you sure you want to exit %1?" -msgstr "Voulez-vous vraiment quitter %1 ?" +msgstr "Voulez-vous vraiment quitter %1?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Cura.qml:740 msgctxt "@window:title" @@ -6214,8 +6251,9 @@ msgid "" "We have found one or more G-Code files within the files you have selected. " "You can only open one G-Code file at a time. If you want to open a G-Code " "file, please just select only one." -msgstr "Nous avons trouvé au moins un fichier G-Code parmi les fichiers que vous avez sélectionné. Vous ne pouvez ouvrir qu'un seul fichier G-Code à la fois. Si" -" vous souhaitez ouvrir un fichier G-Code, veuillez ne sélectionner qu'un seul fichier de ce type." +msgstr "" +"Nous avons trouvé au moins un fichier G-Code parmi les fichiers que vous avez sélectionné. Vous ne pouvez ouvrir qu'un seul fichier G-Code à la fois. Si vous souhaitez ouvrir un fichier G-" +"Code, veuillez ne sélectionner qu'un seul fichier de ce type." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Cura.qml:829 msgctxt "@title:window" @@ -6233,8 +6271,10 @@ msgid "" "- Add material profiles and plug-ins from the Marketplace\n" "- Back-up and sync your material profiles and plug-ins\n" "- Share ideas and get help from 48,000+ users in the Ultimaker community" -msgstr "- Ajoutez des profils de matériaux et des plug-ins à partir de la Marketplace\n- Sauvegardez et synchronisez vos profils de matériaux et vos plug-ins\n-" -" Partagez vos idées et obtenez l'aide de plus de 48 000 utilisateurs de la communauté Ultimaker" +msgstr "" +"- Ajoutez des profils de matériaux et des plugins à partir de la Marketplace\n" +"- Sauvegardez et synchronisez vos profils de matériaux et vos plugins\n" +"- Partagez vos idées et obtenez l'aide de plus de 48,000 utilisateurs de la communauté Ultimaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" From 663dcb896877629e9660eaf62976bb03871675e5 Mon Sep 17 00:00:00 2001 From: xommit <70339941+xommit@users.noreply.github.com> Date: Thu, 17 Nov 2022 15:21:34 +0100 Subject: [PATCH 090/185] Update cura.po --- resources/i18n/fr_FR/cura.po | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index f73616dbc6..d2b48930c9 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -1,10 +1,12 @@ -# Cura -# Copyright (C) 2022 Ultimaker B.V. -# This file is distributed under the same license as the Cura package. +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. # +#, fuzzy msgid "" msgstr "" -"Project-Id-Version: Cura 5.2\n" +"Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-09-27 14:50+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" From 4d2f6b9655dd4cecf9eef0f1f808b05e3b500d28 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 17 Nov 2022 16:21:57 +0100 Subject: [PATCH 091/185] Previously there would always be one item in the updateableMachinesModel ("Create new"). This was moved to a button instead of being part of the model. This fixes new machines being incorrectly created when a machine already exists. CURA-9424 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 20bb7c8e2e..de3274efff 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -616,6 +616,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # The machine included in the project file exists locally already, no need to change selected printers. is_networked_machine = global_stack.hasNetworkedConnection() is_abstract_machine = parseBool(existing_global_stack.getMetaDataEntry("is_abstract_machine", False)) + self._dialog.setMachineToOverride(global_stack.getId()) elif self._dialog.updatableMachinesModel.count > 0: # The machine included in the project file does not exist. There is another machine of the same type. # This will always default to an abstract machine first. @@ -630,6 +631,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): machine_name = i18n_catalog.i18nc("@button", "Create new") self._dialog.setIsAbstractMachine(False) self._dialog.setIsNetworkedMachine(False) + self._dialog.setMachineToOverride(None) self._dialog.setResolveStrategy("machine", "new") self._dialog.setIsNetworkedMachine(is_networked_machine) @@ -730,7 +732,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): application.expandedCategoriesChanged.emit() # Notify the GUI of the change # If there are no machines of the same type, create a new machine. - if self._resolve_strategies["machine"] != "override" or self._dialog.updatableMachinesModel.count <= 1: + if self._resolve_strategies["machine"] != "override" or self._dialog.updatableMachinesModel.count == 0: # We need to create a new machine machine_name = self._container_registry.uniqueName(self._machine_info.name) From ff61097f13036044f407c6fd68405938697ebee0 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 17 Nov 2022 16:37:14 +0100 Subject: [PATCH 092/185] Update resources/qml/RoundedRectangle.qml Co-authored-by: Casper Lamboo --- resources/qml/RoundedRectangle.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/resources/qml/RoundedRectangle.qml b/resources/qml/RoundedRectangle.qml index 86f7214654..3ca05e2125 100644 --- a/resources/qml/RoundedRectangle.qml +++ b/resources/qml/RoundedRectangle.qml @@ -1,4 +1,3 @@ - import QtQuick 2.7 import UM 1.2 as UM From d286f50fe9428f247e4bae420a7747aa21b80029 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 17 Nov 2022 16:39:59 +0100 Subject: [PATCH 093/185] Check for translated string CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index cb93aec37e..0dfa7d4e8c 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -96,7 +96,7 @@ UM.Dialog WorkspaceRow { leftLabelText: catalog.i18nc("@action:label", manager.isPrinterGroup ? "Printer Group" : "Printer Name") - rightLabelText: manager.machineName == "Create new" ? "" : manager.machineName + rightLabelText: manager.machineName == catalog.i18nc("@button", "Create new") ? "" : manager.machineName } } From dd510a5dfcfbaa41e2311bdb22a860712d3bed5e Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 17 Nov 2022 16:58:16 +0100 Subject: [PATCH 094/185] Cleanup CURA-9424 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index de3274efff..554309d648 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -600,7 +600,6 @@ class ThreeMFWorkspaceReader(WorkspaceReader): self._dialog.setNumUserSettings(num_user_settings) self._dialog.setActiveMode(active_mode) self._dialog.setUpdatableMachines(updatable_machines) - self._dialog.setMachineToOverride(global_stack_id) self._dialog.setMaterialLabels(material_labels) self._dialog.setMachineType(machine_type) self._dialog.setExtruders(extruders) @@ -617,6 +616,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): is_networked_machine = global_stack.hasNetworkedConnection() is_abstract_machine = parseBool(existing_global_stack.getMetaDataEntry("is_abstract_machine", False)) self._dialog.setMachineToOverride(global_stack.getId()) + self._dialog.setResolveStrategy("machine", "override") elif self._dialog.updatableMachinesModel.count > 0: # The machine included in the project file does not exist. There is another machine of the same type. # This will always default to an abstract machine first. @@ -624,13 +624,13 @@ class ThreeMFWorkspaceReader(WorkspaceReader): machine_name = machine["name"] is_networked_machine = machine["isNetworked"] is_abstract_machine = machine["isAbstractMachine"] - self._dialog.setResolveStrategy("machine", "override") self._dialog.setMachineToOverride(machine["id"]) + self._dialog.setResolveStrategy("machine", "override") else: # The machine included in the project file does not exist. There are no other printers of the same type. Default to "Create New". machine_name = i18n_catalog.i18nc("@button", "Create new") - self._dialog.setIsAbstractMachine(False) - self._dialog.setIsNetworkedMachine(False) + is_networked_machine = False + is_abstract_machine = False self._dialog.setMachineToOverride(None) self._dialog.setResolveStrategy("machine", "new") @@ -732,6 +732,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): application.expandedCategoriesChanged.emit() # Notify the GUI of the change # If there are no machines of the same type, create a new machine. + print(self._resolve_strategies) if self._resolve_strategies["machine"] != "override" or self._dialog.updatableMachinesModel.count == 0: # We need to create a new machine machine_name = self._container_registry.uniqueName(self._machine_info.name) @@ -742,6 +743,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # the other extruders. machine_extruder_count = self._getMachineExtruderCount() # type: Optional[int] global_stack = CuraStackBuilder.createMachine(machine_name, self._machine_info.definition_id, machine_extruder_count) + print(f"Created Global Stack: {global_stack}") if global_stack: # Only switch if creating the machine was successful. extruder_stack_dict = {str(position): extruder for position, extruder in enumerate(global_stack.extruderList)} From 1d1800e440bcc726d5fecf0cfc3fa646c281f54b Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Thu, 17 Nov 2022 17:03:05 +0100 Subject: [PATCH 095/185] Remove print statements CURA-9424 --- plugins/3MFReader/ThreeMFWorkspaceReader.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/3MFReader/ThreeMFWorkspaceReader.py b/plugins/3MFReader/ThreeMFWorkspaceReader.py index 554309d648..c839c46e7c 100755 --- a/plugins/3MFReader/ThreeMFWorkspaceReader.py +++ b/plugins/3MFReader/ThreeMFWorkspaceReader.py @@ -732,7 +732,6 @@ class ThreeMFWorkspaceReader(WorkspaceReader): application.expandedCategoriesChanged.emit() # Notify the GUI of the change # If there are no machines of the same type, create a new machine. - print(self._resolve_strategies) if self._resolve_strategies["machine"] != "override" or self._dialog.updatableMachinesModel.count == 0: # We need to create a new machine machine_name = self._container_registry.uniqueName(self._machine_info.name) @@ -743,7 +742,6 @@ class ThreeMFWorkspaceReader(WorkspaceReader): # the other extruders. machine_extruder_count = self._getMachineExtruderCount() # type: Optional[int] global_stack = CuraStackBuilder.createMachine(machine_name, self._machine_info.definition_id, machine_extruder_count) - print(f"Created Global Stack: {global_stack}") if global_stack: # Only switch if creating the machine was successful. extruder_stack_dict = {str(position): extruder for position, extruder in enumerate(global_stack.extruderList)} From 6d810ccb9d18c3346ee2562cfa5386649c3440c6 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 17 Nov 2022 17:52:48 +0100 Subject: [PATCH 096/185] Split up installer workflow per OS. This requires a separate action to be run per OS, as there is no real way to have conditional lists within YML. The idea is that the installer can be build per OS (and also, another intent of this change is to make it so that people don't have to wait for all artifacts to be ready to download a single one). part of CURA-9880 --- .github/workflows/cura-all-installers.yml | 105 ++++++++++++++++++++++ .github/workflows/cura-installer.yml | 40 ++++----- 2 files changed, 122 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/cura-all-installers.yml diff --git a/.github/workflows/cura-all-installers.yml b/.github/workflows/cura-all-installers.yml new file mode 100644 index 0000000000..a0c716d123 --- /dev/null +++ b/.github/workflows/cura-all-installers.yml @@ -0,0 +1,105 @@ +name: Cura All Installers +run-name: ${{ inputs.cura_conan_version }} by @${{ github.actor }} + +on: + workflow_dispatch: + inputs: + cura_conan_version: + description: 'Cura Conan Version' + default: 'cura/latest@ultimaker/testing' + required: true + conan_args: + description: 'Conan args: eq.: --require-override' + default: '' + required: false + conan_config: + description: 'Conan config branch to use' + default: '' + required: false + enterprise: + description: 'Build Cura as an Enterprise edition' + required: true + default: false + type: boolean + staging: + description: 'Use staging API' + required: true + default: false + type: boolean + installer: + description: 'Create the installer' + required: true + default: true + type: boolean + build_windows: + description: 'Build for Windows' + required: true + default: true + type: boolean + build_linux: + description: 'Build for Linux' + required: true + default: true + type: boolean + build_macos: + description: 'Build for MacOs' + required: true + default: true + type: boolean + + # Run the nightly at 3:25 UTC on working days + schedule: + - cron: '25 3 * * 1-5' + +jobs: + windows-installer-create: + if: ${{ inputs.build_windows }} + uses: ./.github/workflows/cura-installer.yml + with: + platform: 'windows-2022' + os_name: 'win64' + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + conan_config: ${{ inputs.conan_config }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + installer: ${{ inputs.installer }} + + linux-installer-create: + if: ${{ inputs.build_linux }} + uses: ./.github/workflows/cura-installer.yml + with: + platform: 'ubuntu-20.04' + os_name: 'linux' + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + conan_config: ${{ inputs.conan_config }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + installer: ${{ inputs.installer }} + + linux-modern-installer-create: + if: ${{ inputs.build_linux }} + uses: ./.github/workflows/cura-installer.yml + with: + platform: 'ubuntu-22.04' + os_name: 'linux-modern' + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + conan_config: ${{ inputs.conan_config }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + installer: ${{ inputs.installer }} + + macos-installer-create: + if: ${{ inputs.build_macos }} + uses: ./.github/workflows/cura-installer.yml + with: + platform: 'macos-11' + os_name: 'mac' + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + conan_config: ${{ inputs.conan_config }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + installer: ${{ inputs.installer }} diff --git a/.github/workflows/cura-installer.yml b/.github/workflows/cura-installer.yml index d0f9fb895e..9ad4a6d971 100644 --- a/.github/workflows/cura-installer.yml +++ b/.github/workflows/cura-installer.yml @@ -1,9 +1,17 @@ name: Cura Installer -run-name: ${{ inputs.cura_conan_version }} by @${{ github.actor }} +run-name: ${{ inputs.cura_conan_version }} for ${{ inputs.platform }} by @${{ github.actor }} on: - workflow_dispatch: + workflow_call: inputs: + platform: + description: 'Selected Installer OS' + default: 'ubuntu-20.04' + required: true + os_name: + description: 'OS Friendly Name' + default: 'linux' + required: true cura_conan_version: description: 'Cura Conan Version' default: 'cura/latest@ultimaker/testing' @@ -32,11 +40,6 @@ on: default: true type: boolean - # Run the nightly at 3:25 UTC on working days - #FIXME: Provide the same default values as the workflow dispatch - schedule: - - cron: '25 3 * * 1-5' - env: CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }} @@ -59,16 +62,7 @@ env: jobs: cura-installer-create: - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - include: - - { os: macos-11, os_id: 'mac' } - - { os: windows-2022, os_id: 'win64' } - - { os: ubuntu-20.04, os_id: 'linux' } - - { os: ubuntu-22.04, os_id: 'linux-modern' } + runs-on: ${{ inputs.platform }} steps: - name: Checkout @@ -217,34 +211,34 @@ jobs: - name: Archive the artifacts (bash) if: ${{ github.event.inputs.installer == 'false' && runner.os != 'Windows' }} - run: tar -zcf "./Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.tar.gz" "./Ultimaker-Cura/" + run: tar -zcf "./Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.tar.gz" "./Ultimaker-Cura/" working-directory: dist - name: Archive the artifacts (Powershell) if: ${{ github.event.inputs.installer == 'false' && runner.os == 'Windows' }} - run: Compress-Archive -Path ".\Ultimaker-Cura" -DestinationPath ".\Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ matrix.os_id }}.zip" + run: Compress-Archive -Path ".\Ultimaker-Cura" -DestinationPath ".\Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.zip" working-directory: dist - name: Create the Windows exe installer (Powershell) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Windows' }} run: | - python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ matrix.os_id }}.exe" + python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.exe" working-directory: dist - name: Create the Linux AppImage (Bash) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Linux' }} - run: python ../cura_inst/packaging/AppImage/create_appimage.py ./Ultimaker-Cura $CURA_VERSION_FULL "Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.AppImage" + run: python ../cura_inst/packaging/AppImage/create_appimage.py ./Ultimaker-Cura $CURA_VERSION_FULL "Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.AppImage" working-directory: dist - name: Create the MacOS dmg (Bash) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Macos' }} - run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "Ultimaker-Cura-$CURA_VERSION_FULL-${{ matrix.os_id }}.dmg" + run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.dmg" working-directory: dist - name: Upload the artifacts uses: actions/upload-artifact@v3 with: - name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ matrix.os_id }} + name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ inputs.os_name }} path: | dist/*.tar.gz dist/*.zip From ccdc67712ab82ef90d4831505a2654aa7e4e2972 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 17 Nov 2022 18:04:25 +0100 Subject: [PATCH 097/185] Suddenly 'type' is required while previously it wasn't. Also attempt to standardize the ordering somewhat (description, default, required, type). part of CURA-9880 --- .github/workflows/cura-all-installers.yml | 15 +++++++++------ .github/workflows/cura-installer.yml | 11 ++++++++--- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/cura-all-installers.yml b/.github/workflows/cura-all-installers.yml index a0c716d123..0347f72eaa 100644 --- a/.github/workflows/cura-all-installers.yml +++ b/.github/workflows/cura-all-installers.yml @@ -8,43 +8,46 @@ on: description: 'Cura Conan Version' default: 'cura/latest@ultimaker/testing' required: true + type: string conan_args: description: 'Conan args: eq.: --require-override' default: '' required: false + type: string conan_config: description: 'Conan config branch to use' default: '' required: false + type: string enterprise: description: 'Build Cura as an Enterprise edition' - required: true default: false + required: true type: boolean staging: description: 'Use staging API' - required: true default: false + required: true type: boolean installer: description: 'Create the installer' - required: true default: true + required: true type: boolean build_windows: description: 'Build for Windows' - required: true default: true + required: true type: boolean build_linux: description: 'Build for Linux' - required: true default: true + required: true type: boolean build_macos: description: 'Build for MacOs' - required: true default: true + required: true type: boolean # Run the nightly at 3:25 UTC on working days diff --git a/.github/workflows/cura-installer.yml b/.github/workflows/cura-installer.yml index 9ad4a6d971..8b1ea6e390 100644 --- a/.github/workflows/cura-installer.yml +++ b/.github/workflows/cura-installer.yml @@ -8,36 +8,41 @@ on: description: 'Selected Installer OS' default: 'ubuntu-20.04' required: true + type: string os_name: description: 'OS Friendly Name' default: 'linux' required: true + type: string cura_conan_version: description: 'Cura Conan Version' default: 'cura/latest@ultimaker/testing' required: true + type: string conan_args: description: 'Conan args: eq.: --require-override' default: '' required: false + type: string conan_config: description: 'Conan config branch to use' default: '' required: false + type: string enterprise: description: 'Build Cura as an Enterprise edition' - required: true default: false + required: true type: boolean staging: description: 'Use staging API' - required: true default: false + required: true type: boolean installer: description: 'Create the installer' - required: true default: true + required: true type: boolean env: From 3761f03ceaf875ac4fd8d677e2df206535a6639e Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 17 Nov 2022 18:26:45 +0100 Subject: [PATCH 098/185] Called workflow needs to inherit more information to run. part of CURA-9880 --- .github/workflows/cura-all-installers.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/cura-all-installers.yml b/.github/workflows/cura-all-installers.yml index 0347f72eaa..25f56063af 100644 --- a/.github/workflows/cura-all-installers.yml +++ b/.github/workflows/cura-all-installers.yml @@ -67,6 +67,7 @@ jobs: enterprise: ${{ inputs.enterprise }} staging: ${{ inputs.staging }} installer: ${{ inputs.installer }} + secrets: inherit linux-installer-create: if: ${{ inputs.build_linux }} @@ -80,6 +81,7 @@ jobs: enterprise: ${{ inputs.enterprise }} staging: ${{ inputs.staging }} installer: ${{ inputs.installer }} + secrets: inherit linux-modern-installer-create: if: ${{ inputs.build_linux }} @@ -93,6 +95,7 @@ jobs: enterprise: ${{ inputs.enterprise }} staging: ${{ inputs.staging }} installer: ${{ inputs.installer }} + secrets: inherit macos-installer-create: if: ${{ inputs.build_macos }} @@ -106,3 +109,4 @@ jobs: enterprise: ${{ inputs.enterprise }} staging: ${{ inputs.staging }} installer: ${{ inputs.installer }} + secrets: inherit From 73ac7fa7168b8ea6770ed7a277211fd68d6b8c94 Mon Sep 17 00:00:00 2001 From: jspijker Date: Fri, 18 Nov 2022 11:27:41 +0100 Subject: [PATCH 099/185] Fix get version form PR's --- .github/workflows/conan-recipe-version.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index e5b1af54f5..a0ea09c0f3 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -67,8 +67,7 @@ jobs: if: ${{ github.event.pull_request.head.repo.full_name != github.repository }} with: fetch-depth: 0 - ref: ${{ github.event.pull_request.head.ref }} - repository: ${{ github.event.pull_request.head.repo.full_name }} + ref: ${{ github.base_ref }} - name: Setup Python and pip uses: actions/setup-python@v4 From f60463a23776f4a88237936940df6faa10ea6bb8 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 18 Nov 2022 11:33:00 +0100 Subject: [PATCH 100/185] Add left padding CURA-9424 --- plugins/3MFReader/WorkspaceDialog.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/3MFReader/WorkspaceDialog.qml b/plugins/3MFReader/WorkspaceDialog.qml index 0dfa7d4e8c..d1a000bae4 100644 --- a/plugins/3MFReader/WorkspaceDialog.qml +++ b/plugins/3MFReader/WorkspaceDialog.qml @@ -195,7 +195,7 @@ UM.Dialog model: resolveStrategiesModel textRole: "label" visible: manager.qualityChangesConflict - contentLeftPadding: UM.Theme.getSize("default_margin").width + contentLeftPadding: UM.Theme.getSize("default_margin").width + UM.Theme.getSize("narrow_margin").width textFont: UM.Theme.getFont("medium") background: Cura.RoundedRectangle @@ -249,7 +249,7 @@ UM.Dialog model: resolveStrategiesModel textRole: "label" visible: manager.materialConflict - contentLeftPadding: UM.Theme.getSize("default_margin").width + contentLeftPadding: UM.Theme.getSize("default_margin").width + UM.Theme.getSize("narrow_margin").width textFont: UM.Theme.getFont("medium") background: Cura.RoundedRectangle From cc36da86b10bbbd6d71cf6db2d66bea3953b3447 Mon Sep 17 00:00:00 2001 From: jspijker Date: Fri, 18 Nov 2022 11:44:57 +0100 Subject: [PATCH 101/185] Fix channel when people use - instead of _ in their branch name --- .github/workflows/conan-recipe-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index a0ea09c0f3..ffa0b97e10 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -118,7 +118,7 @@ jobs: elif ref_name in ("main", "master"): channel = 'testing' else: - channel = repo.active_branch.name.split("_")[0].replace("-", "_").lower() + channel = "_".join(repo.active_branch.name.replace("-", "_").split("_")[:2]).lower() if "pull_request" in event_name: channel = f"pr_{issue_number}" From 55040a7040b28481ce943f024eef8ccb1935f1a2 Mon Sep 17 00:00:00 2001 From: jspijker Date: Fri, 18 Nov 2022 11:50:10 +0100 Subject: [PATCH 102/185] Use Env file for workflow output --- .github/workflows/conan-recipe-version.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index ffa0b97e10..e376ec7648 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -171,19 +171,19 @@ jobs: actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}" # %% print to output - cmd_name = ["echo", f"::set-output name=name::{project_name}"] + cmd_name = ["echo", f"name={project_name} >> $GITHUB_OUTPUT"] subprocess.call(cmd_name) - cmd_version = ["echo", f"::set-output name=version::{actual_version}"] + cmd_version = ["echo", f"version={actual_version} >> $GITHUB_OUTPUT"] subprocess.call(cmd_version) - cmd_channel = ["echo", f"::set-output name=channel::{channel}"] + cmd_channel = ["echo", f"channel={channel} >> $GITHUB_OUTPUT"] subprocess.call(cmd_channel) - cmd_id_full= ["echo", f"::set-output name=recipe_id_full::{project_name}/{actual_version}@{user}/{channel}"] + cmd_id_full= ["echo", f"recipe_id_full={project_name}/{actual_version}@{user}/{channel} >> $GITHUB_OUTPUT"] subprocess.call(cmd_id_full) - cmd_id_latest = ["echo", f"::set-output name=recipe_id_latest::{project_name}/latest@{user}/{channel}"] + cmd_id_latest = ["echo", f"recipe_id_latest={project_name}/latest@{user}/{channel} >> $GITHUB_OUTPUT"] subprocess.call(cmd_id_latest) - cmd_semver_full = ["echo", f"::set-output name=semver_full::{actual_version}"] + cmd_semver_full = ["echo", f"semver_full={actual_version} >> $GITHUB_OUTPUT"] subprocess.call(cmd_semver_full) - cmd_is_release_branch = ["echo", f"::set-output name=is_release_branch::{str(is_release_branch).lower()}"] + cmd_is_release_branch = ["echo", f"is_release_branch={str(is_release_branch).lower()} >> $GITHUB_OUTPUT"] subprocess.call(cmd_is_release_branch) print("::group::Conan Recipe Information") @@ -191,7 +191,7 @@ jobs: print(f"version = {actual_version}") print(f"user = {user}") print(f"channel = {channel}") - print(f"= {project_name}/{actual_version}@{user}/{channel}") + print(f"recipe_id_full = {project_name}/{actual_version}@{user}/{channel}") print(f"recipe_id_latest = {project_name}/latest@{user}/{channel}") print(f"semver_full = {actual_version}") print(f"is_release_branch = {str(is_release_branch).lower()}") From be0b2b15c7a60ace7094c981caf6d7f9a1997626 Mon Sep 17 00:00:00 2001 From: jspijker Date: Fri, 18 Nov 2022 11:59:36 +0100 Subject: [PATCH 103/185] Use quotes for output to env files --- .github/workflows/conan-recipe-version.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index e376ec7648..8e9b0de547 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -171,19 +171,19 @@ jobs: actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}" # %% print to output - cmd_name = ["echo", f"name={project_name} >> $GITHUB_OUTPUT"] + cmd_name = ["echo", f"\"name={project_name}\" >> $GITHUB_OUTPUT"] subprocess.call(cmd_name) - cmd_version = ["echo", f"version={actual_version} >> $GITHUB_OUTPUT"] + cmd_version = ["echo", f"\"version={actual_version}\" >> $GITHUB_OUTPUT"] subprocess.call(cmd_version) - cmd_channel = ["echo", f"channel={channel} >> $GITHUB_OUTPUT"] + cmd_channel = ["echo", f"\"channel={channel}\" >> $GITHUB_OUTPUT"] subprocess.call(cmd_channel) - cmd_id_full= ["echo", f"recipe_id_full={project_name}/{actual_version}@{user}/{channel} >> $GITHUB_OUTPUT"] + cmd_id_full= ["echo", f"\"recipe_id_full={project_name}/{actual_version}@{user}/{channel}\" >> $GITHUB_OUTPUT"] subprocess.call(cmd_id_full) - cmd_id_latest = ["echo", f"recipe_id_latest={project_name}/latest@{user}/{channel} >> $GITHUB_OUTPUT"] + cmd_id_latest = ["echo", f"\"recipe_id_latest={project_name}/latest@{user}/{channel}\" >> $GITHUB_OUTPUT"] subprocess.call(cmd_id_latest) - cmd_semver_full = ["echo", f"semver_full={actual_version} >> $GITHUB_OUTPUT"] + cmd_semver_full = ["echo", f"\"semver_full={actual_version}\" >> $GITHUB_OUTPUT"] subprocess.call(cmd_semver_full) - cmd_is_release_branch = ["echo", f"is_release_branch={str(is_release_branch).lower()} >> $GITHUB_OUTPUT"] + cmd_is_release_branch = ["echo", f"\"is_release_branch={str(is_release_branch).lower()}\" >> $GITHUB_OUTPUT"] subprocess.call(cmd_is_release_branch) print("::group::Conan Recipe Information") From 87cea8f8f4d65ffbed5064c84db8a1a1c2d867c0 Mon Sep 17 00:00:00 2001 From: jspijker Date: Fri, 18 Nov 2022 13:02:04 +0100 Subject: [PATCH 104/185] write directly to the env file --- .github/workflows/conan-recipe-version.yml | 32 ++++++++++++---------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 8e9b0de547..82ceb74595 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -85,6 +85,7 @@ jobs: name: Get Conan broadcast data run: | import subprocess + import os from conans import tools from conans.errors import ConanException from git import Repo @@ -170,21 +171,22 @@ jobs: reset_patch = 0 actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}" - # %% print to output - cmd_name = ["echo", f"\"name={project_name}\" >> $GITHUB_OUTPUT"] - subprocess.call(cmd_name) - cmd_version = ["echo", f"\"version={actual_version}\" >> $GITHUB_OUTPUT"] - subprocess.call(cmd_version) - cmd_channel = ["echo", f"\"channel={channel}\" >> $GITHUB_OUTPUT"] - subprocess.call(cmd_channel) - cmd_id_full= ["echo", f"\"recipe_id_full={project_name}/{actual_version}@{user}/{channel}\" >> $GITHUB_OUTPUT"] - subprocess.call(cmd_id_full) - cmd_id_latest = ["echo", f"\"recipe_id_latest={project_name}/latest@{user}/{channel}\" >> $GITHUB_OUTPUT"] - subprocess.call(cmd_id_latest) - cmd_semver_full = ["echo", f"\"semver_full={actual_version}\" >> $GITHUB_OUTPUT"] - subprocess.call(cmd_semver_full) - cmd_is_release_branch = ["echo", f"\"is_release_branch={str(is_release_branch).lower()}\" >> $GITHUB_OUTPUT"] - subprocess.call(cmd_is_release_branch) + # %% Set the environment output + output_env = os.environ["GITHUB_OUTPUT"] + content = "" + if os.path.exist(output_env): + with open(output_env, "r") as f: + content = f.read() + + with open(output_env, "w") as f: + f.write(content) + f.writelines(f"name={project_name}\n") + f.writelines(f"version={actual_version}\n") + f.writelines(f"channel={channel}\n") + f.writelines(f"recipe_id_full={project_name}/{actual_version}@{user}/{channel}\n") + f.writelines(f"recipe_id_latest={project_name}/latest@{user}/{channel}\n") + f.writelines(f"semver_full={actual_version}\n") + f.writelines(f"is_release_branch={str(is_release_branch).lower()}\n") print("::group::Conan Recipe Information") print(f"name = {project_name}") From fb69cff5115ba23c5461ddf64fada7afd1f9b741 Mon Sep 17 00:00:00 2001 From: jspijker Date: Fri, 18 Nov 2022 13:04:38 +0100 Subject: [PATCH 105/185] fix typo --- .github/workflows/conan-recipe-version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/conan-recipe-version.yml b/.github/workflows/conan-recipe-version.yml index 82ceb74595..345fad2220 100644 --- a/.github/workflows/conan-recipe-version.yml +++ b/.github/workflows/conan-recipe-version.yml @@ -174,7 +174,7 @@ jobs: # %% Set the environment output output_env = os.environ["GITHUB_OUTPUT"] content = "" - if os.path.exist(output_env): + if os.path.exists(output_env): with open(output_env, "r") as f: content = f.read() From 104bc585f44fb7665454443b46936c4024fee29e Mon Sep 17 00:00:00 2001 From: jspijker Date: Sat, 19 Nov 2022 19:07:32 +0100 Subject: [PATCH 106/185] Added a linting tool for Cura Printers and Profiles printer-linter works of definitions, profiles and meshes; It has various diagnostic checks. With possible suggestions for fixes. It should also be able to fix certain diagnostic issues and it can be used to format the files according to code-style. It can output the diagnostics in a yaml file, which can then be used to comment on PR's with suggestions to the author. Future PR. The settings for the diagnostics and checks are defined in `.printer-linter` and are very self explanatory. ``` checks: diagnostic-mesh-file-extension: true diagnostic-mesh-file-size: true diagnostic-definition-redundant-override: true fixes: diagnostic-definition-redundant-override: true format: format-definition-bracket-newline: false format-definition-paired-coordinate-array: true format-definition-sort-keys: true format-definition-indent: 4 format-profile-space-around-delimiters: true format-profile-sort-keys: true diagnostic-mesh-file-size: 1200000 ``` --- .printer-linter | 14 ++++ printer-linter/printer-linter.py | 129 ++++++++++++++++++++++++++++++ printer-linter/tidy/__init__.py | 20 +++++ printer-linter/tidy/defintion.py | 96 ++++++++++++++++++++++ printer-linter/tidy/diagnostic.py | 87 ++++++++++++++++++++ printer-linter/tidy/meshes.py | 34 ++++++++ printer-linter/tidy/profile.py | 7 ++ requirements-dev.txt | 1 + 8 files changed, 388 insertions(+) create mode 100644 .printer-linter create mode 100644 printer-linter/printer-linter.py create mode 100644 printer-linter/tidy/__init__.py create mode 100644 printer-linter/tidy/defintion.py create mode 100644 printer-linter/tidy/diagnostic.py create mode 100644 printer-linter/tidy/meshes.py create mode 100644 printer-linter/tidy/profile.py diff --git a/.printer-linter b/.printer-linter new file mode 100644 index 0000000000..085937325e --- /dev/null +++ b/.printer-linter @@ -0,0 +1,14 @@ +checks: + diagnostic-mesh-file-extension: true + diagnostic-mesh-file-size: true + diagnostic-definition-redundant-override: true +fixes: + diagnostic-definition-redundant-override: true +format: + format-definition-bracket-newline: false + format-definition-paired-coordinate-array: true + format-definition-sort-keys: true + format-definition-indent: 4 + format-profile-space-around-delimiters: true + format-profile-sort-keys: true +diagnostic-mesh-file-size: 800000 \ No newline at end of file diff --git a/printer-linter/printer-linter.py b/printer-linter/printer-linter.py new file mode 100644 index 0000000000..7dd18e6176 --- /dev/null +++ b/printer-linter/printer-linter.py @@ -0,0 +1,129 @@ +import configparser +import json +import re +from argparse import ArgumentParser +from collections import OrderedDict +from os import getcwd +from pathlib import Path + +import yaml + +from tidy import create + + +def examineFile(file, settings): + patient = create(file, settings) + if patient is None: + return {} + + full_body_check = {f"{file.as_posix()}": []} + for diagnostic in patient.check(): + if diagnostic: + full_body_check[f"{file.as_posix()}"].append(diagnostic.toDict()) + + if len(full_body_check[f"{file.as_posix()}"]) == 0: + del full_body_check[f"{file.as_posix()}"] + return full_body_check + + +def fixFile(file, settings, full_body_check): + if not file.exists(): + return + ext = ".".join(file.name.split(".")[-2:]) + + if ext == "def.json": + issues = full_body_check[f"{file.as_posix()}"] + for issue in issues: + if issue["diagnostic"] == "diagnostic-definition-redundant-override" and settings["fixes"].get( + "diagnostic-definition-redundant-override", True): + pass + + +def formatFile(file: Path, settings): + if not file.exists(): + return + ext = ".".join(file.name.split(".")[-2:]) + + if ext == "def.json": + definition = json.loads(file.read_text()) + content = json.dumps(definition, indent=settings["format"].get("format-definition-indent", 4), + sort_keys=settings["format"].get("format-definition-sort-keys", True)) + + if settings["format"].get("format-definition-bracket-newline", True): + newline = re.compile(r"(\B\s+)(\"[\w\"]+)(\:\s\{)") + content = newline.sub(r"\1\2:\1{", content) + + if settings["format"].get("format-definition-paired-coordinate-array", True): + paired_coordinates = re.compile(r"(\[)\s+(-?\d*),\s*(-?\d*)\s*(\])") + content = paired_coordinates.sub(r"\1 \2, \3 \4", content) + + file.write_text(content) + + if ext == "inst.cfg": + config = configparser.ConfigParser() + config.read(file) + + if settings["format"].get("format-profile-sort-keys", True): + for section in config._sections: + config._sections[section] = OrderedDict(sorted(config._sections[section].items(), key=lambda t: t[0])) + config._sections = OrderedDict(sorted(config._sections.items(), key=lambda t: t[0])) + + with open(file, "w") as f: + config.write(f, space_around_delimiters=settings["format"].get("format-profile-space-around-delimiters", True)) + + +def main(files, setting_path, to_format, to_fix, report): + if not setting_path: + setting_path = Path(getcwd(), ".printer-linter") + + if not setting_path.exists(): + print(f"Can't find the settings: {setting_path}") + return + + with open(setting_path, "r") as f: + settings = yaml.load(f, yaml.FullLoader) + + full_body_check = {} + for file in files: + if file.is_dir(): + for fp in file.rglob("**/*"): + full_body_check |= examineFile(fp, settings) + else: + full_body_check |= examineFile(file, settings) + + results = yaml.dump(full_body_check, default_flow_style=False, indent=4, width=240) + if report: + report.write_text(results) + else: + print(results) + + if to_fix: + for file in files: + if file.is_dir(): + for fp in file.rglob("**/*"): + if f"{file.as_posix()}" in full_body_check: + fixFile(fp, settings, full_body_check) + else: + if f"{file.as_posix()}" in full_body_check: + fixFile(file, settings, full_body_check) + + if to_format: + for file in files: + if file.is_dir(): + for fp in file.rglob("**/*"): + formatFile(fp, settings) + else: + formatFile(file, settings) + + +if __name__ == "__main__": + parser = ArgumentParser( + description="UltiMaker Cura printer linting, static analysis and formatting of Cura printer definitions and other resources") + parser.add_argument("--setting", required=False, type=Path, help="Path to the `.printer-linter` setting file") + parser.add_argument("--report", required=False, type=Path, help="Path where the diagnostic report should be stored") + parser.add_argument("--format", action="store_true", help="Format the files") + parser.add_argument("--fix", action="store_true", help="Attempt to apply the suggested fixes on the files") + parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format") + + args = parser.parse_args() + main(args.Files, args.setting, args.format, args.fix, args.report) diff --git a/printer-linter/tidy/__init__.py b/printer-linter/tidy/__init__.py new file mode 100644 index 0000000000..9bf761bd5e --- /dev/null +++ b/printer-linter/tidy/__init__.py @@ -0,0 +1,20 @@ +from .defintion import Definition +from .diagnostic import Diagnostic +from .meshes import Meshes +from .profile import Profile + +__all__ = ["Profile", "Definition", "Meshes", "Diagnostic", "create"] + + +def create(file, settings): + if not file.exists(): + return None + if ".inst" in file.suffixes and ".cfg" in file.suffixes: + return Profile(file, settings) + if ".def" in file.suffixes and ".json" in file.suffixes: + if file.stem in ("fdmprinter.def", "fdmextruder.def"): + return None + return Definition(file, settings) + if file.parent.stem == "meshes": + return Meshes(file, settings) + return None diff --git a/printer-linter/tidy/defintion.py b/printer-linter/tidy/defintion.py new file mode 100644 index 0000000000..984bdd13e5 --- /dev/null +++ b/printer-linter/tidy/defintion.py @@ -0,0 +1,96 @@ +import json +from pathlib import Path + +from .diagnostic import Diagnostic + + +class Definition: + def __init__(self, file, settings): + self._settings = settings + self._file = file + self._defs = {} + self._getDefs(file) + + settings = {} + for k, v in self._defs["fdmprinter"]["settings"].items(): + self._getSetting(k, v, settings) + self._defs["fdmprinter"] = {"overrides": settings} + + def check(self): + if self._settings["checks"].get("diagnostic-definition-redundant-override", False): + for check in self.checkRedefineOverride(): + yield check + + # Add other which will yield Diagnostic's + # TODO: A check to determine if the user set value is with the min and max value defined in the parent and doesn't trigger a warning + # TODO: A check if the key exist in the first place + # TODO: Check if the model platform exist + + yield + + def checkRedefineOverride(self): + definition_name = list(self._defs.keys())[0] + definition = self._defs[definition_name] + if "overrides" in definition and definition_name != "fdmprinter": + keys = list(definition["overrides"].keys()) + for key, value_dict in definition["overrides"].items(): + is_redefined, value, parent = self._isDefinedInParent(key, value_dict, definition['inherits']) + if is_redefined: + termination_key = keys.index(key) + 1 + if termination_key >= len(keys): + # FIXME: find the correct end sequence for now assume it is on the same line + termination_seq = None + else: + termination_seq = keys[termination_key] + yield Diagnostic("diagnostic-definition-redundant-override", + f"Overriding **{key}** with the same value (**{value}**) as defined in parent definition: **{definition['inherits']}**", + self._file, + key, + termination_seq) + + def checkValueOutOfBounds(self): + + pass + + def _getSetting(self, name, setting, settings): + if "children" in setting: + for childname, child in setting["children"].items(): + self._getSetting(childname, child, settings) + settings |= {name: setting} + + def _getDefs(self, file): + if not file.exists(): + return + self._defs[Path(file.stem).stem] = json.loads(file.read_text()) + if "inherits" in self._defs[Path(file.stem).stem]: + parent_file = file.parent.joinpath(f"{self._defs[Path(file.stem).stem]['inherits']}.def.json") + self._getDefs(parent_file) + + def _isDefinedInParent(self, key, value_dict, inherits_from): + if "overrides" not in self._defs[inherits_from]: + return self._isDefinedInParent(key, value_dict, self._defs[inherits_from]["inherits"]) + + parent = self._defs[inherits_from]["overrides"] + is_number = self._defs["fdmprinter"]["overrides"][key] in ("float", "int") + for value in value_dict.values(): + if key in parent: + check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None] + for check_value in check_values: + if is_number: + try: + v = str(float(value)) + except: + v = value + try: + cv = str(float(check_value)) + except: + cv = check_value + else: + v = value + cv = check_value + if v == cv: + return True, value, parent + + if "inherits" in parent: + return self._isDefinedInParent(key, value_dict, parent["inherits"]) + return False, None, None diff --git a/printer-linter/tidy/diagnostic.py b/printer-linter/tidy/diagnostic.py new file mode 100644 index 0000000000..f3ef618d52 --- /dev/null +++ b/printer-linter/tidy/diagnostic.py @@ -0,0 +1,87 @@ +class Diagnostic: + def __init__(self, illness, msg, file, key=None, termination_seq=None): + self.illness = illness + self.key = key + self.msg = msg + self.file = file + self._lines = None + self._location = None + self._fix = None + self._content_block = None + self._termination_seq = termination_seq + + @property + def location(self): + if self._location: + return self._location + if not self._lines: + with open(self.file, "r") as f: + if not self.is_text_file: + self._fix = "" + return self._fix + self._lines = f.readlines() + + start_location = {"col": 1, "line": 1} + end_location = {"col": len(self._lines[-1]) + 1, "line": len(self._lines) + 1} + + if self.key is not None: + for lino, line in enumerate(self._lines, 1): + if f'"{self.key}":' in line: + col = line.index(f'"{self.key}":') + 1 + start_location = {"col": col, "line": lino} + if self._termination_seq is None: + end_location = {"col": len(line) + 1, "line": lino} + break + if f'"{self._termination_seq}":' in line: + col = line.index(f'"{self._termination_seq}":') + 1 + end_location = {"col": col, "line": lino} + self._location = {"start": start_location, "end": end_location} + return self._location + + @property + def is_text_file(self): + return self.file.name.split(".", maxsplit=1)[-1] in ("def.json", "inst.cfg") + + @property + def content_block(self): + if self._content_block: + return self._content_block + + if not self._lines: + if not self.is_text_file: + self._fix = "" + return self._fix + with open(self.file, "r") as f: + self._lines = f.readlines() + + start_line = self.location["start"]["line"] + start_col = self.location["start"]["col"] + end_line = self.location["end"]["line"] + end_col = len(self._lines[start_line:end_line - 1]) + self.location["start"]["col"] + self._content_block = "".join(self._lines[start_line:end_line]) + return self._content_block + + @property + def fix(self): + if self._fix: + return self._fix + + if not self._lines: + if not self.is_text_file: + self._fix = "" + return self._fix + with open(self.file, "r") as f: + self._lines = f.readlines() + + start_line = self.location["start"]["line"] + start_col = self.location["start"]["col"] + end_line = self.location["end"]["line"] + end_col = len(self._lines[start_line:end_line - 1]) + self.location["start"]["col"] + self._fix = self.content_block[start_col:end_col] + return self._fix + + def toDict(self): + diagnostic_dict = {"diagnostic": self.illness, "message": self.msg} + if self.is_text_file: + diagnostic_dict |= {"fix": self.fix, "lino": self.location, "content": self.content_block} + return diagnostic_dict diff --git a/printer-linter/tidy/meshes.py b/printer-linter/tidy/meshes.py new file mode 100644 index 0000000000..ae0eb5ab02 --- /dev/null +++ b/printer-linter/tidy/meshes.py @@ -0,0 +1,34 @@ +from .diagnostic import Diagnostic + + +class Meshes: + def __init__(self, file, settings): + self._settings = settings + self._file = file + self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6) + + def check(self): + if self._settings["checks"].get("diagnostic-mesh-file-extension", False): + for check in self.checkFileFormat(): + yield check + + if self._settings["checks"].get("diagnostic-mesh-file-size", False): + for check in self.checkFileSize(): + yield check + + yield + + def checkFileFormat(self): + if self._file.suffix.lower() not in (".3mf", ".obj", ".stl"): + yield Diagnostic("diagnostic-mesh-file-extension", + f"Extension **{self._file.suffix}** not supported, use **3mf**, **obj** or **stl**", + self._file) + yield + + def checkFileSize(self): + + if self._file.stat().st_size > self._max_file_size: + yield Diagnostic("diagnostic-mesh-file-size", + f"Mesh file with a size **{self._file.stat().st_size}** is bigger then allowed maximum of **{self._max_file_size}**", + self._file) + yield diff --git a/printer-linter/tidy/profile.py b/printer-linter/tidy/profile.py new file mode 100644 index 0000000000..137344fe71 --- /dev/null +++ b/printer-linter/tidy/profile.py @@ -0,0 +1,7 @@ +class Profile: + def __init__(self, file, settings): + self._settings = settings + self._file = file + + def check(self): + yield diff --git a/requirements-dev.txt b/requirements-dev.txt index 819943e8b7..b1e52571ca 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,5 +1,6 @@ pytest pyinstaller pyinstaller-hooks-contrib +pyyaml sip==6.5.1 jinja2 From a4615fd72945a58ad253db5574df0c06fc71894e Mon Sep 17 00:00:00 2001 From: jspijker Date: Sat, 19 Nov 2022 20:31:28 +0100 Subject: [PATCH 107/185] Update default setting values --- .printer-linter | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.printer-linter b/.printer-linter index 085937325e..82eadb6d53 100644 --- a/.printer-linter +++ b/.printer-linter @@ -5,10 +5,10 @@ checks: fixes: diagnostic-definition-redundant-override: true format: - format-definition-bracket-newline: false + format-definition-bracket-newline: true format-definition-paired-coordinate-array: true format-definition-sort-keys: true format-definition-indent: 4 format-profile-space-around-delimiters: true format-profile-sort-keys: true -diagnostic-mesh-file-size: 800000 \ No newline at end of file +diagnostic-mesh-file-size: 1200000 \ No newline at end of file From cec022f330117527f3fd5ad086ea623491cd8501 Mon Sep 17 00:00:00 2001 From: jspijker Date: Sat, 19 Nov 2022 20:31:47 +0100 Subject: [PATCH 108/185] Fix the fax value --- printer-linter/tidy/diagnostic.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/printer-linter/tidy/diagnostic.py b/printer-linter/tidy/diagnostic.py index f3ef618d52..e828751695 100644 --- a/printer-linter/tidy/diagnostic.py +++ b/printer-linter/tidy/diagnostic.py @@ -54,11 +54,9 @@ class Diagnostic: with open(self.file, "r") as f: self._lines = f.readlines() - start_line = self.location["start"]["line"] - start_col = self.location["start"]["col"] - end_line = self.location["end"]["line"] - end_col = len(self._lines[start_line:end_line - 1]) + self.location["start"]["col"] - self._content_block = "".join(self._lines[start_line:end_line]) + start_line = self.location["start"]["line"] - 1 + end_line = self.location["end"]["line"] - 1 + self._content_block = "\n".join(self._lines[start_line:end_line]) return self._content_block @property @@ -73,10 +71,10 @@ class Diagnostic: with open(self.file, "r") as f: self._lines = f.readlines() - start_line = self.location["start"]["line"] - start_col = self.location["start"]["col"] - end_line = self.location["end"]["line"] - end_col = len(self._lines[start_line:end_line - 1]) + self.location["start"]["col"] + start_line = self.location["start"]["line"] - 2 + start_col = 0 + end_line = self.location["end"]["line"] - 1 + end_col = len(self._lines[start_line:end_line - 1]) + self.location["start"]["col"] - 4 # TODO: double check if 4 holds in all instances self._fix = self.content_block[start_col:end_col] return self._fix From 49305474ea3f139c4e007067f90d56be5e70b2c9 Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 20 Nov 2022 10:46:21 +0100 Subject: [PATCH 109/185] Added a diagnose flag Allowing the user to opt-in or out of diagnosing the file --- printer-linter/printer-linter.py | 44 +++++++++++++++++--------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/printer-linter/printer-linter.py b/printer-linter/printer-linter.py index 7dd18e6176..ba1387c5de 100644 --- a/printer-linter/printer-linter.py +++ b/printer-linter/printer-linter.py @@ -72,7 +72,7 @@ def formatFile(file: Path, settings): config.write(f, space_around_delimiters=settings["format"].get("format-profile-space-around-delimiters", True)) -def main(files, setting_path, to_format, to_fix, report): +def main(files, setting_path, to_format, to_fix, to_diagnose, report): if not setting_path: setting_path = Path(getcwd(), ".printer-linter") @@ -83,29 +83,30 @@ def main(files, setting_path, to_format, to_fix, report): with open(setting_path, "r") as f: settings = yaml.load(f, yaml.FullLoader) - full_body_check = {} - for file in files: - if file.is_dir(): - for fp in file.rglob("**/*"): - full_body_check |= examineFile(fp, settings) - else: - full_body_check |= examineFile(file, settings) - - results = yaml.dump(full_body_check, default_flow_style=False, indent=4, width=240) - if report: - report.write_text(results) - else: - print(results) - - if to_fix: + if to_fix or to_diagnose: + full_body_check = {} for file in files: if file.is_dir(): for fp in file.rglob("**/*"): - if f"{file.as_posix()}" in full_body_check: - fixFile(fp, settings, full_body_check) + full_body_check |= examineFile(fp, settings) else: - if f"{file.as_posix()}" in full_body_check: - fixFile(file, settings, full_body_check) + full_body_check |= examineFile(file, settings) + + results = yaml.dump(full_body_check, default_flow_style=False, indent=4, width=240) + if report: + report.write_text(results) + else: + print(results) + + if to_fix: + for file in files: + if file.is_dir(): + for fp in file.rglob("**/*"): + if f"{file.as_posix()}" in full_body_check: + fixFile(fp, settings, full_body_check) + else: + if f"{file.as_posix()}" in full_body_check: + fixFile(file, settings, full_body_check) if to_format: for file in files: @@ -122,8 +123,9 @@ if __name__ == "__main__": parser.add_argument("--setting", required=False, type=Path, help="Path to the `.printer-linter` setting file") parser.add_argument("--report", required=False, type=Path, help="Path where the diagnostic report should be stored") parser.add_argument("--format", action="store_true", help="Format the files") + parser.add_argument("--diagnose", action="store_true", help="Diagnose the files") parser.add_argument("--fix", action="store_true", help="Attempt to apply the suggested fixes on the files") parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format") args = parser.parse_args() - main(args.Files, args.setting, args.format, args.fix, args.report) + main(args.Files, args.setting, args.format, args.fix, args.diagnose, args.report) From f78fbd3edfc49a8a68a6a8e6441f9bebfeccd5c7 Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 20 Nov 2022 10:51:42 +0100 Subject: [PATCH 110/185] Auto format printer/profiles with printer-linter Runs only master and release branch, will create a co-authored commit if formatting was applied --- .github/workflows/printer_linter_format.yml | 45 +++++++++++++++++++ .../workflows/requirements-printer-linter.txt | 1 + 2 files changed, 46 insertions(+) create mode 100644 .github/workflows/printer_linter_format.yml create mode 100644 .github/workflows/requirements-printer-linter.txt diff --git a/.github/workflows/printer_linter_format.yml b/.github/workflows/printer_linter_format.yml new file mode 100644 index 0000000000..75134cddbb --- /dev/null +++ b/.github/workflows/printer_linter_format.yml @@ -0,0 +1,45 @@ +name: printer-linter-format + +on: + push: + branches: + - main + - '[1-9].[0-9]' + - '[1-9].[0-9][0-9]' + path: + - 'resources/**' + +jobs: + printer_lint: + name: Printer linter auto format + + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Python and pip + uses: actions/setup-python@v4 + with: + python-version: 3.11.x + cache: 'pip' + cache-dependency-path: .github/workflows/requirements-printer-linter.txt + + - uses: technote-space/get-diff-action@v6 + with: + PATTERNS: | + resources/+(definitions|extruders)/*.def.json + resources/+(intent|quality|variants)/**/*.inst.cfg + + - name: Install Python requirements for runner + if: env.GIT_DIFF && !env.MATCHED_FILES + run: pip install -r .github/workflows/requirements-printer-linter.txt + + - name: Format file + if: env.GIT_DIFF && !env.MATCHED_FILES + run: python printer-linter/printer-linter.py --format ${{ env.GIT_DIFF_FILTERED }} + + - uses: stefanzweifel/git-auto-commit-action@v4 + if: env.GIT_DIFF && !env.MATCHED_FILES + with: + commit_message: "Applied printer-linter format" diff --git a/.github/workflows/requirements-printer-linter.txt b/.github/workflows/requirements-printer-linter.txt new file mode 100644 index 0000000000..4818cc5419 --- /dev/null +++ b/.github/workflows/requirements-printer-linter.txt @@ -0,0 +1 @@ +pyyaml \ No newline at end of file From 0c7807e0cdbf2bc9b8463822079217bc75b3520d Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 20 Nov 2022 12:16:37 +0100 Subject: [PATCH 111/185] Create a proper Pyhton packages for printer-linter Such that it can be downloaded, installed and used locally and on other repo's actions etc --- printer-linter/pyproject.toml | 17 ++++++++++ printer-linter/setup.cfg | 10 ++++++ printer-linter/setup.py | 6 ++++ .../{tidy => src/printerlinter}/__init__.py | 0 .../{tidy => src/printerlinter}/defintion.py | 0 .../{tidy => src/printerlinter}/diagnostic.py | 0 .../{tidy => src/printerlinter}/meshes.py | 0 .../{tidy => src/printerlinter}/profile.py | 0 .../printerlinter/terminal.py} | 33 +++++++++++-------- 9 files changed, 53 insertions(+), 13 deletions(-) create mode 100644 printer-linter/pyproject.toml create mode 100644 printer-linter/setup.cfg create mode 100644 printer-linter/setup.py rename printer-linter/{tidy => src/printerlinter}/__init__.py (100%) rename printer-linter/{tidy => src/printerlinter}/defintion.py (100%) rename printer-linter/{tidy => src/printerlinter}/diagnostic.py (100%) rename printer-linter/{tidy => src/printerlinter}/meshes.py (100%) rename printer-linter/{tidy => src/printerlinter}/profile.py (100%) rename printer-linter/{printer-linter.py => src/printerlinter/terminal.py} (95%) diff --git a/printer-linter/pyproject.toml b/printer-linter/pyproject.toml new file mode 100644 index 0000000000..bf04261c7d --- /dev/null +++ b/printer-linter/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "printerlinter" +description = "Cura UltiMaker printer linting tool" +version = "0.1.0" +authors = [ + { name = "UltiMaker", email = "cura@ultimaker.com" } +] +dependencies = [ + "pyyaml" +] + +[project.scripts] +printer-linter = "printerlinter.terminal:main" + +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/printer-linter/setup.cfg b/printer-linter/setup.cfg new file mode 100644 index 0000000000..68b0484162 --- /dev/null +++ b/printer-linter/setup.cfg @@ -0,0 +1,10 @@ +[metadata] +name = printerlinter + +[options] +package_dir= + =src +packages=find: + +[options.packages.find] +where=src \ No newline at end of file diff --git a/printer-linter/setup.py b/printer-linter/setup.py new file mode 100644 index 0000000000..25536050b2 --- /dev/null +++ b/printer-linter/setup.py @@ -0,0 +1,6 @@ +#!/usr/bin/env python + +from setuptools import setup + +if __name__ == "__main__": + setup() diff --git a/printer-linter/tidy/__init__.py b/printer-linter/src/printerlinter/__init__.py similarity index 100% rename from printer-linter/tidy/__init__.py rename to printer-linter/src/printerlinter/__init__.py diff --git a/printer-linter/tidy/defintion.py b/printer-linter/src/printerlinter/defintion.py similarity index 100% rename from printer-linter/tidy/defintion.py rename to printer-linter/src/printerlinter/defintion.py diff --git a/printer-linter/tidy/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py similarity index 100% rename from printer-linter/tidy/diagnostic.py rename to printer-linter/src/printerlinter/diagnostic.py diff --git a/printer-linter/tidy/meshes.py b/printer-linter/src/printerlinter/meshes.py similarity index 100% rename from printer-linter/tidy/meshes.py rename to printer-linter/src/printerlinter/meshes.py diff --git a/printer-linter/tidy/profile.py b/printer-linter/src/printerlinter/profile.py similarity index 100% rename from printer-linter/tidy/profile.py rename to printer-linter/src/printerlinter/profile.py diff --git a/printer-linter/printer-linter.py b/printer-linter/src/printerlinter/terminal.py similarity index 95% rename from printer-linter/printer-linter.py rename to printer-linter/src/printerlinter/terminal.py index ba1387c5de..565818ca4e 100644 --- a/printer-linter/printer-linter.py +++ b/printer-linter/src/printerlinter/terminal.py @@ -8,7 +8,7 @@ from pathlib import Path import yaml -from tidy import create +from . import create def examineFile(file, settings): @@ -72,7 +72,24 @@ def formatFile(file: Path, settings): config.write(f, space_around_delimiters=settings["format"].get("format-profile-space-around-delimiters", True)) -def main(files, setting_path, to_format, to_fix, to_diagnose, report): +def main(): + parser = ArgumentParser( + description="UltiMaker Cura printer linting, static analysis and formatting of Cura printer definitions and other resources") + parser.add_argument("--setting", required=False, type=Path, help="Path to the `.printer-linter` setting file") + parser.add_argument("--report", required=False, type=Path, help="Path where the diagnostic report should be stored") + parser.add_argument("--format", action="store_true", help="Format the files") + parser.add_argument("--diagnose", action="store_true", help="Diagnose the files") + parser.add_argument("--fix", action="store_true", help="Attempt to apply the suggested fixes on the files") + parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format") + + args = parser.parse_args() + files = args.Files + setting_path = args.setting + to_format = args.format + to_fix = args.fix + to_diagnose = args.diagnose + report = args.report + if not setting_path: setting_path = Path(getcwd(), ".printer-linter") @@ -118,14 +135,4 @@ def main(files, setting_path, to_format, to_fix, to_diagnose, report): if __name__ == "__main__": - parser = ArgumentParser( - description="UltiMaker Cura printer linting, static analysis and formatting of Cura printer definitions and other resources") - parser.add_argument("--setting", required=False, type=Path, help="Path to the `.printer-linter` setting file") - parser.add_argument("--report", required=False, type=Path, help="Path where the diagnostic report should be stored") - parser.add_argument("--format", action="store_true", help="Format the files") - parser.add_argument("--diagnose", action="store_true", help="Diagnose the files") - parser.add_argument("--fix", action="store_true", help="Attempt to apply the suggested fixes on the files") - parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format") - - args = parser.parse_args() - main(args.Files, args.setting, args.format, args.fix, args.diagnose, args.report) + main() From 2b9080732664168b152868b91c70c0b036ef954b Mon Sep 17 00:00:00 2001 From: jspijker Date: Sun, 20 Nov 2022 12:38:22 +0100 Subject: [PATCH 112/185] Update gitignore with python build files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 26fe1ccf4a..1e8fd47664 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,4 @@ conanbuildinfo.txt graph_info.json Ultimaker-Cura.spec .run/ +/printer-linter/src/printerlinter.egg-info/ From 4b455d45e9ec66e5f24592bfd71f74b76b09d2e6 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 21 Nov 2022 10:51:08 +0100 Subject: [PATCH 113/185] Use same yaml structure as cling-tidy --- printer-linter/pyproject.toml | 2 +- printer-linter/src/printerlinter/__init__.py | 15 +-- printer-linter/src/printerlinter/defintion.py | 31 +++--- .../src/printerlinter/diagnostic.py | 95 +++---------------- printer-linter/src/printerlinter/factory.py | 17 ++++ printer-linter/src/printerlinter/meshes.py | 19 ++-- .../src/printerlinter/replacement.py | 12 +++ .../src/{printerlinter => }/terminal.py | 18 ++-- 8 files changed, 85 insertions(+), 124 deletions(-) create mode 100644 printer-linter/src/printerlinter/factory.py create mode 100644 printer-linter/src/printerlinter/replacement.py rename printer-linter/src/{printerlinter => }/terminal.py (90%) diff --git a/printer-linter/pyproject.toml b/printer-linter/pyproject.toml index bf04261c7d..74c6531c87 100644 --- a/printer-linter/pyproject.toml +++ b/printer-linter/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ ] [project.scripts] -printer-linter = "printerlinter.terminal:main" +printer-linter = "terminal:main" [build-system] requires = ["setuptools"] diff --git a/printer-linter/src/printerlinter/__init__.py b/printer-linter/src/printerlinter/__init__.py index 9bf761bd5e..8023686891 100644 --- a/printer-linter/src/printerlinter/__init__.py +++ b/printer-linter/src/printerlinter/__init__.py @@ -1,20 +1,7 @@ from .defintion import Definition from .diagnostic import Diagnostic +from .factory import create from .meshes import Meshes from .profile import Profile __all__ = ["Profile", "Definition", "Meshes", "Diagnostic", "create"] - - -def create(file, settings): - if not file.exists(): - return None - if ".inst" in file.suffixes and ".cfg" in file.suffixes: - return Profile(file, settings) - if ".def" in file.suffixes and ".json" in file.suffixes: - if file.stem in ("fdmprinter.def", "fdmextruder.def"): - return None - return Definition(file, settings) - if file.parent.stem == "meshes": - return Meshes(file, settings) - return None diff --git a/printer-linter/src/printerlinter/defintion.py b/printer-linter/src/printerlinter/defintion.py index 984bdd13e5..a2fb3a4ff0 100644 --- a/printer-linter/src/printerlinter/defintion.py +++ b/printer-linter/src/printerlinter/defintion.py @@ -1,7 +1,9 @@ import json +import re from pathlib import Path from .diagnostic import Diagnostic +from .replacement import Replacement class Definition: @@ -11,6 +13,8 @@ class Definition: self._defs = {} self._getDefs(file) + self._content = self._file.read_text() + settings = {} for k, v in self._defs["fdmprinter"]["settings"].items(): self._getSetting(k, v, settings) @@ -32,24 +36,25 @@ class Definition: definition_name = list(self._defs.keys())[0] definition = self._defs[definition_name] if "overrides" in definition and definition_name != "fdmprinter": - keys = list(definition["overrides"].keys()) for key, value_dict in definition["overrides"].items(): is_redefined, value, parent = self._isDefinedInParent(key, value_dict, definition['inherits']) if is_redefined: - termination_key = keys.index(key) + 1 - if termination_key >= len(keys): - # FIXME: find the correct end sequence for now assume it is on the same line - termination_seq = None - else: - termination_seq = keys[termination_key] - yield Diagnostic("diagnostic-definition-redundant-override", - f"Overriding **{key}** with the same value (**{value}**) as defined in parent definition: **{definition['inherits']}**", - self._file, - key, - termination_seq) + redefined = re.compile(r'.*(\"' + key + r'\"[\s\S]*?\{)[\s\S]*?(\}[,\"]?)') + found = redefined.search(self._content) + yield Diagnostic( + file = self._file, + diagnostic_name = "diagnostic-definition-redundant-override", + message = f"Overriding **{key}** with the same value (**{value}**) as defined in parent definition: **{definition['inherits']}**", + level = "Warning", + offset = found.span(0)[0], + replacements = [Replacement( + file = self._file, + offset = found.span(1)[0], + length = found.span(2)[1] - found.span(1)[0], + replacement_text = "")] + ) def checkValueOutOfBounds(self): - pass def _getSetting(self, name, setting, settings): diff --git a/printer-linter/src/printerlinter/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py index e828751695..7941929c43 100644 --- a/printer-linter/src/printerlinter/diagnostic.py +++ b/printer-linter/src/printerlinter/diagnostic.py @@ -1,85 +1,20 @@ class Diagnostic: - def __init__(self, illness, msg, file, key=None, termination_seq=None): - self.illness = illness - self.key = key - self.msg = msg + def __init__(self, file, diagnostic_name, message, level, offset, replacements=None): self.file = file - self._lines = None - self._location = None - self._fix = None - self._content_block = None - self._termination_seq = termination_seq - - @property - def location(self): - if self._location: - return self._location - if not self._lines: - with open(self.file, "r") as f: - if not self.is_text_file: - self._fix = "" - return self._fix - self._lines = f.readlines() - - start_location = {"col": 1, "line": 1} - end_location = {"col": len(self._lines[-1]) + 1, "line": len(self._lines) + 1} - - if self.key is not None: - for lino, line in enumerate(self._lines, 1): - if f'"{self.key}":' in line: - col = line.index(f'"{self.key}":') + 1 - start_location = {"col": col, "line": lino} - if self._termination_seq is None: - end_location = {"col": len(line) + 1, "line": lino} - break - if f'"{self._termination_seq}":' in line: - col = line.index(f'"{self._termination_seq}":') + 1 - end_location = {"col": col, "line": lino} - self._location = {"start": start_location, "end": end_location} - return self._location - - @property - def is_text_file(self): - return self.file.name.split(".", maxsplit=1)[-1] in ("def.json", "inst.cfg") - - @property - def content_block(self): - if self._content_block: - return self._content_block - - if not self._lines: - if not self.is_text_file: - self._fix = "" - return self._fix - with open(self.file, "r") as f: - self._lines = f.readlines() - - start_line = self.location["start"]["line"] - 1 - end_line = self.location["end"]["line"] - 1 - self._content_block = "\n".join(self._lines[start_line:end_line]) - return self._content_block - - @property - def fix(self): - if self._fix: - return self._fix - - if not self._lines: - if not self.is_text_file: - self._fix = "" - return self._fix - with open(self.file, "r") as f: - self._lines = f.readlines() - - start_line = self.location["start"]["line"] - 2 - start_col = 0 - end_line = self.location["end"]["line"] - 1 - end_col = len(self._lines[start_line:end_line - 1]) + self.location["start"]["col"] - 4 # TODO: double check if 4 holds in all instances - self._fix = self.content_block[start_col:end_col] - return self._fix + self.diagnostic_name = diagnostic_name + self.message = message + self.offset = offset + self.level = level + self.replacements = replacements def toDict(self): - diagnostic_dict = {"diagnostic": self.illness, "message": self.msg} - if self.is_text_file: - diagnostic_dict |= {"fix": self.fix, "lino": self.location, "content": self.content_block} + diagnostic_dict = {"DiagnosticName": self.diagnostic_name, + "DiagnosticMessage": { + "Message": self.message, + "FilePath": self.file.as_posix(), + "FileOffset": self.offset, + "Replacements": [] if self.replacements is None else [r.toDict() for r in self.replacements], + }, + "Level": self.level + } return diagnostic_dict diff --git a/printer-linter/src/printerlinter/factory.py b/printer-linter/src/printerlinter/factory.py new file mode 100644 index 0000000000..12e2d36628 --- /dev/null +++ b/printer-linter/src/printerlinter/factory.py @@ -0,0 +1,17 @@ +from .profile import Profile +from .defintion import Definition +from .meshes import Meshes + + +def create(file, settings): + if not file.exists(): + return None + if ".inst" in file.suffixes and ".cfg" in file.suffixes: + return Profile(file, settings) + if ".def" in file.suffixes and ".json" in file.suffixes: + if file.stem in ("fdmprinter.def", "fdmextruder.def"): + return None + return Definition(file, settings) + if file.parent.stem == "meshes": + return Meshes(file, settings) + return None \ No newline at end of file diff --git a/printer-linter/src/printerlinter/meshes.py b/printer-linter/src/printerlinter/meshes.py index ae0eb5ab02..2e2c5784c0 100644 --- a/printer-linter/src/printerlinter/meshes.py +++ b/printer-linter/src/printerlinter/meshes.py @@ -20,15 +20,22 @@ class Meshes: def checkFileFormat(self): if self._file.suffix.lower() not in (".3mf", ".obj", ".stl"): - yield Diagnostic("diagnostic-mesh-file-extension", - f"Extension **{self._file.suffix}** not supported, use **3mf**, **obj** or **stl**", - self._file) + yield Diagnostic( + file = self._file, + diagnostic_name = "diagnostic-mesh-file-extension", + message = f"Extension **{self._file.suffix}** not supported, use **3mf**, **obj** or **stl**", + level = "Error" + ) yield def checkFileSize(self): if self._file.stat().st_size > self._max_file_size: - yield Diagnostic("diagnostic-mesh-file-size", - f"Mesh file with a size **{self._file.stat().st_size}** is bigger then allowed maximum of **{self._max_file_size}**", - self._file) + yield Diagnostic( + file = self._file, + diagnostic_name = "diagnostic-mesh-file-size", + message = f"Mesh file with a size **{self._file.stat().st_size}** is bigger then allowed maximum of **{self._max_file_size}**", + level = "Error", + offset = 0 + ) yield diff --git a/printer-linter/src/printerlinter/replacement.py b/printer-linter/src/printerlinter/replacement.py new file mode 100644 index 0000000000..d609071875 --- /dev/null +++ b/printer-linter/src/printerlinter/replacement.py @@ -0,0 +1,12 @@ +class Replacement: + def __init__(self, file, offset, length, replacement_text): + self.file = file + self.offset = offset + self.length = length + self.replacement_text = replacement_text + + def toDict(self): + return {"FilePath": self.file.as_posix(), + "Offset": self.offset, + "Length": self.length, + "ReplacementText": self.replacement_text} diff --git a/printer-linter/src/printerlinter/terminal.py b/printer-linter/src/terminal.py similarity index 90% rename from printer-linter/src/printerlinter/terminal.py rename to printer-linter/src/terminal.py index 565818ca4e..a21ee819df 100644 --- a/printer-linter/src/printerlinter/terminal.py +++ b/printer-linter/src/terminal.py @@ -8,22 +8,20 @@ from pathlib import Path import yaml -from . import create +from printerlinter import factory def examineFile(file, settings): - patient = create(file, settings) + patient = factory.create(file, settings) if patient is None: return {} - full_body_check = {f"{file.as_posix()}": []} + body_check = [] for diagnostic in patient.check(): if diagnostic: - full_body_check[f"{file.as_posix()}"].append(diagnostic.toDict()) + body_check.append(diagnostic.toDict()) - if len(full_body_check[f"{file.as_posix()}"]) == 0: - del full_body_check[f"{file.as_posix()}"] - return full_body_check + return body_check def fixFile(file, settings, full_body_check): @@ -101,13 +99,13 @@ def main(): settings = yaml.load(f, yaml.FullLoader) if to_fix or to_diagnose: - full_body_check = {} + full_body_check = {"Diagnostics": []} for file in files: if file.is_dir(): for fp in file.rglob("**/*"): - full_body_check |= examineFile(fp, settings) + full_body_check["Diagnostics"].append(examineFile(fp, settings)) else: - full_body_check |= examineFile(file, settings) + full_body_check["Diagnostics"].append(examineFile(file, settings)) results = yaml.dump(full_body_check, default_flow_style=False, indent=4, width=240) if report: From 0070cb7af09c29e04e6209436fd00e560dd73f94 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 21 Nov 2022 10:58:28 +0100 Subject: [PATCH 114/185] flatten list --- printer-linter/src/terminal.py | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index a21ee819df..55af41281f 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -11,17 +11,14 @@ import yaml from printerlinter import factory -def examineFile(file, settings): +def examineFile(file, settings, full_body_check): patient = factory.create(file, settings) if patient is None: - return {} + return - body_check = [] for diagnostic in patient.check(): if diagnostic: - body_check.append(diagnostic.toDict()) - - return body_check + full_body_check["Diagnostics"].append(diagnostic.toDict()) def fixFile(file, settings, full_body_check): @@ -103,9 +100,9 @@ def main(): for file in files: if file.is_dir(): for fp in file.rglob("**/*"): - full_body_check["Diagnostics"].append(examineFile(fp, settings)) + examineFile(fp, settings, full_body_check) else: - full_body_check["Diagnostics"].append(examineFile(file, settings)) + examineFile(file, settings, full_body_check) results = yaml.dump(full_body_check, default_flow_style=False, indent=4, width=240) if report: From 67688aad95f32fa33f5ee53a4896ab48e1bd42a3 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 21 Nov 2022 13:11:52 +0100 Subject: [PATCH 115/185] Formatted the messages --- printer-linter/src/printerlinter/defintion.py | 2 +- printer-linter/src/printerlinter/meshes.py | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/printer-linter/src/printerlinter/defintion.py b/printer-linter/src/printerlinter/defintion.py index a2fb3a4ff0..a92828f31b 100644 --- a/printer-linter/src/printerlinter/defintion.py +++ b/printer-linter/src/printerlinter/defintion.py @@ -44,7 +44,7 @@ class Definition: yield Diagnostic( file = self._file, diagnostic_name = "diagnostic-definition-redundant-override", - message = f"Overriding **{key}** with the same value (**{value}**) as defined in parent definition: **{definition['inherits']}**", + message = f"Overriding {key} with the same value ({value}) as defined in parent definition: {definition['inherits']}", level = "Warning", offset = found.span(0)[0], replacements = [Replacement( diff --git a/printer-linter/src/printerlinter/meshes.py b/printer-linter/src/printerlinter/meshes.py index 2e2c5784c0..404f194100 100644 --- a/printer-linter/src/printerlinter/meshes.py +++ b/printer-linter/src/printerlinter/meshes.py @@ -23,19 +23,19 @@ class Meshes: yield Diagnostic( file = self._file, diagnostic_name = "diagnostic-mesh-file-extension", - message = f"Extension **{self._file.suffix}** not supported, use **3mf**, **obj** or **stl**", - level = "Error" + message = f"Extension {self._file.suffix} not supported, use 3mf, obj or stl", + level = "Error", + offset = 1 ) yield def checkFileSize(self): - if self._file.stat().st_size > self._max_file_size: yield Diagnostic( file = self._file, diagnostic_name = "diagnostic-mesh-file-size", - message = f"Mesh file with a size **{self._file.stat().st_size}** is bigger then allowed maximum of **{self._max_file_size}**", + message = f"Mesh file with a size {self._file.stat().st_size} is bigger then allowed maximum of {self._max_file_size}", level = "Error", - offset = 0 + offset = 1 ) yield From db7e89815ee6d189aa5efd3ddc6f997688f88da3 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 21 Nov 2022 13:16:26 +0100 Subject: [PATCH 116/185] Renamed the workflow for consistency --- .github/workflows/printer-linter-format.yml | 45 +++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .github/workflows/printer-linter-format.yml diff --git a/.github/workflows/printer-linter-format.yml b/.github/workflows/printer-linter-format.yml new file mode 100644 index 0000000000..9fb5a1c584 --- /dev/null +++ b/.github/workflows/printer-linter-format.yml @@ -0,0 +1,45 @@ +name: printer-linter-format + +on: + push: + branches: + - main + - '[1-9].[0-9]' + - '[1-9].[0-9][0-9]' + path: + - 'resources/**' + +jobs: + printer-linter-format: + name: Printer linter auto format + + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Python and pip + uses: actions/setup-python@v4 + with: + python-version: 3.11.x + cache: 'pip' + cache-dependency-path: .github/workflows/requirements-printer-linter.txt + + - uses: technote-space/get-diff-action@v6 + with: + PATTERNS: | + resources/+(definitions|extruders)/*.def.json + resources/+(intent|quality|variants)/**/*.inst.cfg + + - name: Install Python requirements for runner + if: env.GIT_DIFF && !env.MATCHED_FILES + run: pip install -r .github/workflows/requirements-printer-linter.txt + + - name: Format file + if: env.GIT_DIFF && !env.MATCHED_FILES + run: python printer-linter/src/terminal.py --format ${{ env.GIT_DIFF_FILTERED }} + + - uses: stefanzweifel/git-auto-commit-action@v4 + if: env.GIT_DIFF && !env.MATCHED_FILES + with: + commit_message: "Applied printer-linter format" From 32673bedea1b708d324e1b0da231b599df698ebc Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 21 Nov 2022 13:23:04 +0100 Subject: [PATCH 117/185] Add PR review workflows Using the pull-request-comments-from-clang-tidy-reports GH action https://github.com/marketplace/actions/pull-request-comments-from-clang-tidy-reports Which is possible because the printer-linter auto puts the suggested fixes in the same format as clang-tidy. It consists of two workflows, to ensure safe handling of forks PR's. The first workflows is the analysis and the suggested fixes, these are then upload to the second workflow which will use the suggested fixes to past comments on the PR --- .../workflows/printer-linter-pr-diagnose.yml | 59 ++++++++++++++ .github/workflows/printer-linter-pr-post.yml | 80 +++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 .github/workflows/printer-linter-pr-diagnose.yml create mode 100644 .github/workflows/printer-linter-pr-post.yml diff --git a/.github/workflows/printer-linter-pr-diagnose.yml b/.github/workflows/printer-linter-pr-diagnose.yml new file mode 100644 index 0000000000..b218ebe623 --- /dev/null +++ b/.github/workflows/printer-linter-pr-diagnose.yml @@ -0,0 +1,59 @@ +name: printer-linter-pr-diagnose + +on: + pull_request: + path: + - 'resources/**' + +jobs: + printer-linter-diagnose: + name: Printer linter PR diagnose + + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 2 + + - name: Setup Python and pip + uses: actions/setup-python@v4 + with: + python-version: 3.11.x + cache: 'pip' + cache-dependency-path: .github/workflows/requirements-printer-linter.txt + + - uses: technote-space/get-diff-action@v6 + with: + PATTERNS: | + resources/+(extruders|definitions)/*.def.json + resources/+(intent|quality|variants)/**/*.inst.cfg + + - name: Install Python requirements for runner + if: env.GIT_DIFF && !env.MATCHED_FILES + run: pip install -r .github/workflows/requirements-printer-linter.txt + + - name: Create results directory + run: mkdir printer-linter-result + + - name: Diagnose file(s) + if: env.GIT_DIFF && !env.MATCHED_FILES + run: python printer-linter/src/terminal.py --diagnose --report printer-linter-result/fixes.yml ${{ env.GIT_DIFF_FILTERED }} + + - name: Save PR metadata + run: | + echo ${{ github.event.number }} > printer-linter-result/pr-id.txt + echo ${{ github.event.pull_request.head.repo.full_name }} > printer-linter-result/pr-head-repo.txt + echo ${{ github.event.pull_request.head.ref }} > printer-linter-result/pr-head-ref.txt + + - uses: actions/upload-artifact@v2 + with: + name: printer-linter-result + path: printer-linter-result/ + + - name: Run clang-tidy-pr-comments action + uses: platisd/clang-tidy-pr-comments@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + clang_tidy_fixes: result.yml + request_changes: true diff --git a/.github/workflows/printer-linter-pr-post.yml b/.github/workflows/printer-linter-pr-post.yml new file mode 100644 index 0000000000..f47e22c5c5 --- /dev/null +++ b/.github/workflows/printer-linter-pr-post.yml @@ -0,0 +1,80 @@ +name: printer-linter-pr-post + +on: + workflow_run: + workflows: [ "printer-linter-pr-diagnose" ] + types: [ completed ] + +jobs: + clang-tidy-results: + # Trigger the job only if the previous (insecure) workflow completed successfully + if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }} + runs-on: ubuntu-latest + steps: + - name: Download analysis results + uses: actions/github-script@v3.1.0 + with: + script: | + let artifacts = await github.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: ${{github.event.workflow_run.id }}, + }); + let matchArtifact = artifacts.data.artifacts.filter((artifact) => { + return artifact.name == "printer-linter-result" + })[0]; + let download = await github.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: matchArtifact.id, + archive_format: "zip", + }); + let fs = require("fs"); + fs.writeFileSync("${{github.workspace}}/printer-linter-result.zip", Buffer.from(download.data)); + + - name: Set environment variables + run: | + mkdir printer-linter-result + unzip printer-linter-result.zip -d printer-linter-result + echo "pr_id=$(cat printer-linter-result/pr-id.txt)" >> $GITHUB_ENV + echo "pr_head_repo=$(cat printer-linter-result/pr-head-repo.txt)" >> $GITHUB_ENV + echo "pr_head_ref=$(cat printer-linter-result/pr-head-ref.txt)" >> $GITHUB_ENV + + - uses: actions/checkout@v2 + with: + repository: ${{ env.pr_head_repo }} + ref: ${{ env.pr_head_ref }} + persist-credentials: false + + - name: Redownload analysis results + uses: actions/github-script@v3.1.0 + with: + script: | + let artifacts = await github.actions.listWorkflowRunArtifacts({ + owner: context.repo.owner, + repo: context.repo.repo, + run_id: ${{github.event.workflow_run.id }}, + }); + let matchArtifact = artifacts.data.artifacts.filter((artifact) => { + return artifact.name == "printer-linter-result" + })[0]; + let download = await github.actions.downloadArtifact({ + owner: context.repo.owner, + repo: context.repo.repo, + artifact_id: matchArtifact.id, + archive_format: "zip", + }); + let fs = require("fs"); + fs.writeFileSync("${{github.workspace}}/printer-linter-result.zip", Buffer.from(download.data)); + + - name: Extract analysis results + run: | + mkdir printer-linter-result + unzip printer-linter-result.zip -d printer-linter-result + + - name: Run clang-tidy-pr-comments action + uses: platisd/clang-tidy-pr-comments@master + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + clang_tidy_fixes: printer-linter-result/fixes.yml + pull_request_id: ${{ env.pr_id }} From 28110f33682932a466c811d28bf42e51591c5fcb Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 21 Nov 2022 13:31:54 +0100 Subject: [PATCH 118/185] Added workflow requirements --- .github/workflows/requirements-printer-linter.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/workflows/requirements-printer-linter.txt diff --git a/.github/workflows/requirements-printer-linter.txt b/.github/workflows/requirements-printer-linter.txt new file mode 100644 index 0000000000..4818cc5419 --- /dev/null +++ b/.github/workflows/requirements-printer-linter.txt @@ -0,0 +1 @@ +pyyaml \ No newline at end of file From def686e61af04f9330d797b7d1ab60bcd5eba536 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 21 Nov 2022 13:32:23 +0100 Subject: [PATCH 119/185] Remove old workflow --- .github/workflows/printer_linter_format.yml | 45 --------------------- 1 file changed, 45 deletions(-) delete mode 100644 .github/workflows/printer_linter_format.yml diff --git a/.github/workflows/printer_linter_format.yml b/.github/workflows/printer_linter_format.yml deleted file mode 100644 index 75134cddbb..0000000000 --- a/.github/workflows/printer_linter_format.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: printer-linter-format - -on: - push: - branches: - - main - - '[1-9].[0-9]' - - '[1-9].[0-9][0-9]' - path: - - 'resources/**' - -jobs: - printer_lint: - name: Printer linter auto format - - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Python and pip - uses: actions/setup-python@v4 - with: - python-version: 3.11.x - cache: 'pip' - cache-dependency-path: .github/workflows/requirements-printer-linter.txt - - - uses: technote-space/get-diff-action@v6 - with: - PATTERNS: | - resources/+(definitions|extruders)/*.def.json - resources/+(intent|quality|variants)/**/*.inst.cfg - - - name: Install Python requirements for runner - if: env.GIT_DIFF && !env.MATCHED_FILES - run: pip install -r .github/workflows/requirements-printer-linter.txt - - - name: Format file - if: env.GIT_DIFF && !env.MATCHED_FILES - run: python printer-linter/printer-linter.py --format ${{ env.GIT_DIFF_FILTERED }} - - - uses: stefanzweifel/git-auto-commit-action@v4 - if: env.GIT_DIFF && !env.MATCHED_FILES - with: - commit_message: "Applied printer-linter format" From 187dfe1210e9755841780fffb85b0b5054a89706 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 21 Nov 2022 14:20:53 +0100 Subject: [PATCH 120/185] single-value-single-line formatting Need to figure out the regex expression. To only select overrides consisting of a single value --- .printer-linter | 1 + printer-linter/src/terminal.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.printer-linter b/.printer-linter index 82eadb6d53..856649f420 100644 --- a/.printer-linter +++ b/.printer-linter @@ -9,6 +9,7 @@ format: format-definition-paired-coordinate-array: true format-definition-sort-keys: true format-definition-indent: 4 + format-definition-single-value-single-line: true format-profile-space-around-delimiters: true format-profile-sort-keys: true diagnostic-mesh-file-size: 1200000 \ No newline at end of file diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index 55af41281f..4a31340445 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -48,6 +48,9 @@ def formatFile(file: Path, settings): newline = re.compile(r"(\B\s+)(\"[\w\"]+)(\:\s\{)") content = newline.sub(r"\1\2:\1{", content) + if settings["format"].get("format-definition-single-value-single-line", True): + pass # TODO: format entries in the override section which only define a single value to be on one line + if settings["format"].get("format-definition-paired-coordinate-array", True): paired_coordinates = re.compile(r"(\[)\s+(-?\d*),\s*(-?\d*)\s*(\])") content = paired_coordinates.sub(r"\1 \2, \3 \4", content) From 91daf89c2d70433dafea85fab1f43d3babe986ad Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 22 Nov 2022 14:38:41 +0100 Subject: [PATCH 121/185] add return types --- printer-linter/src/printerlinter/defintion.py | 15 ++++++++------- printer-linter/src/printerlinter/diagnostic.py | 4 ++-- printer-linter/src/printerlinter/meshes.py | 6 +++--- printer-linter/src/printerlinter/profile.py | 4 ++-- printer-linter/src/printerlinter/replacement.py | 2 +- printer-linter/src/terminal.py | 8 ++++---- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/printer-linter/src/printerlinter/defintion.py b/printer-linter/src/printerlinter/defintion.py index a92828f31b..4d47900d68 100644 --- a/printer-linter/src/printerlinter/defintion.py +++ b/printer-linter/src/printerlinter/defintion.py @@ -7,7 +7,7 @@ from .replacement import Replacement class Definition: - def __init__(self, file, settings): + def __init__(self, file, settings) -> None: self._settings = settings self._file = file self._defs = {} @@ -20,7 +20,7 @@ class Definition: self._getSetting(k, v, settings) self._defs["fdmprinter"] = {"overrides": settings} - def check(self): + def check(self) -> None: if self._settings["checks"].get("diagnostic-definition-redundant-override", False): for check in self.checkRedefineOverride(): yield check @@ -32,7 +32,7 @@ class Definition: yield - def checkRedefineOverride(self): + def checkRedefineOverride(self) -> None: definition_name = list(self._defs.keys())[0] definition = self._defs[definition_name] if "overrides" in definition and definition_name != "fdmprinter": @@ -54,17 +54,18 @@ class Definition: replacement_text = "")] ) - def checkValueOutOfBounds(self): + def checkValueOutOfBounds(self) -> None: pass - def _getSetting(self, name, setting, settings): + def _getSetting(self, name, setting, settings) -> None: if "children" in setting: for childname, child in setting["children"].items(): self._getSetting(childname, child, settings) settings |= {name: setting} - def _getDefs(self, file): - if not file.exists(): + def _getDefs(self, file) -> None: + """ Loads up file, and it's parent definitions into self._defs """ + if not file.exists() or Path(file.stem).stem in self._defs: return self._defs[Path(file.stem).stem] = json.loads(file.read_text()) if "inherits" in self._defs[Path(file.stem).stem]: diff --git a/printer-linter/src/printerlinter/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py index 7941929c43..a6843ed38f 100644 --- a/printer-linter/src/printerlinter/diagnostic.py +++ b/printer-linter/src/printerlinter/diagnostic.py @@ -1,5 +1,5 @@ class Diagnostic: - def __init__(self, file, diagnostic_name, message, level, offset, replacements=None): + def __init__(self, file, diagnostic_name, message, level, offset, replacements=None) -> None: self.file = file self.diagnostic_name = diagnostic_name self.message = message @@ -7,7 +7,7 @@ class Diagnostic: self.level = level self.replacements = replacements - def toDict(self): + def toDict(self) -> dict: diagnostic_dict = {"DiagnosticName": self.diagnostic_name, "DiagnosticMessage": { "Message": self.message, diff --git a/printer-linter/src/printerlinter/meshes.py b/printer-linter/src/printerlinter/meshes.py index 404f194100..47205ce219 100644 --- a/printer-linter/src/printerlinter/meshes.py +++ b/printer-linter/src/printerlinter/meshes.py @@ -2,12 +2,12 @@ from .diagnostic import Diagnostic class Meshes: - def __init__(self, file, settings): + def __init__(self, file, settings) -> None: self._settings = settings self._file = file self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6) - def check(self): + def check(self) -> None: if self._settings["checks"].get("diagnostic-mesh-file-extension", False): for check in self.checkFileFormat(): yield check @@ -18,7 +18,7 @@ class Meshes: yield - def checkFileFormat(self): + def checkFileFormat(self) -> None: if self._file.suffix.lower() not in (".3mf", ".obj", ".stl"): yield Diagnostic( file = self._file, diff --git a/printer-linter/src/printerlinter/profile.py b/printer-linter/src/printerlinter/profile.py index 137344fe71..c5386ab0e8 100644 --- a/printer-linter/src/printerlinter/profile.py +++ b/printer-linter/src/printerlinter/profile.py @@ -1,7 +1,7 @@ class Profile: - def __init__(self, file, settings): + def __init__(self, file, settings) -> None: self._settings = settings self._file = file - def check(self): + def check(self) -> None: yield diff --git a/printer-linter/src/printerlinter/replacement.py b/printer-linter/src/printerlinter/replacement.py index d609071875..bc6b58a97b 100644 --- a/printer-linter/src/printerlinter/replacement.py +++ b/printer-linter/src/printerlinter/replacement.py @@ -5,7 +5,7 @@ class Replacement: self.length = length self.replacement_text = replacement_text - def toDict(self): + def toDict(self) -> dict: return {"FilePath": self.file.as_posix(), "Offset": self.offset, "Length": self.length, diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index 4a31340445..f388dda4c5 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -11,7 +11,7 @@ import yaml from printerlinter import factory -def examineFile(file, settings, full_body_check): +def examineFile(file, settings, full_body_check) -> None: patient = factory.create(file, settings) if patient is None: return @@ -21,7 +21,7 @@ def examineFile(file, settings, full_body_check): full_body_check["Diagnostics"].append(diagnostic.toDict()) -def fixFile(file, settings, full_body_check): +def fixFile(file, settings, full_body_check) -> None: if not file.exists(): return ext = ".".join(file.name.split(".")[-2:]) @@ -34,7 +34,7 @@ def fixFile(file, settings, full_body_check): pass -def formatFile(file: Path, settings): +def formatFile(file: Path, settings) -> None: if not file.exists(): return ext = ".".join(file.name.split(".")[-2:]) @@ -70,7 +70,7 @@ def formatFile(file: Path, settings): config.write(f, space_around_delimiters=settings["format"].get("format-profile-space-around-delimiters", True)) -def main(): +def main() -> None: parser = ArgumentParser( description="UltiMaker Cura printer linting, static analysis and formatting of Cura printer definitions and other resources") parser.add_argument("--setting", required=False, type=Path, help="Path to the `.printer-linter` setting file") From a470f02373d7806e597d1dccfe9c6e23cdf56961 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 22 Nov 2022 19:26:50 +0100 Subject: [PATCH 122/185] Move linters into seperate module. Give linters an abstract type to inherit, since they share an interface. Add empty README --- printer-linter/README.md | 0 printer-linter/src/printerlinter/__init__.py | 5 +---- printer-linter/src/printerlinter/factory.py | 11 +++++++---- .../src/printerlinter/linters/__init__.py | 6 ++++++ .../src/printerlinter/{ => linters}/defintion.py | 13 +++++++------ .../printerlinter/linters/diagnostic_generator.py | 14 ++++++++++++++ .../src/printerlinter/{ => linters}/meshes.py | 9 +++++---- .../src/printerlinter/linters/profile.py | 9 +++++++++ printer-linter/src/printerlinter/profile.py | 7 ------- 9 files changed, 49 insertions(+), 25 deletions(-) create mode 100644 printer-linter/README.md create mode 100644 printer-linter/src/printerlinter/linters/__init__.py rename printer-linter/src/printerlinter/{ => linters}/defintion.py (93%) create mode 100644 printer-linter/src/printerlinter/linters/diagnostic_generator.py rename printer-linter/src/printerlinter/{ => linters}/meshes.py (89%) create mode 100644 printer-linter/src/printerlinter/linters/profile.py delete mode 100644 printer-linter/src/printerlinter/profile.py diff --git a/printer-linter/README.md b/printer-linter/README.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/printer-linter/src/printerlinter/__init__.py b/printer-linter/src/printerlinter/__init__.py index 8023686891..a157443ff5 100644 --- a/printer-linter/src/printerlinter/__init__.py +++ b/printer-linter/src/printerlinter/__init__.py @@ -1,7 +1,4 @@ -from .defintion import Definition from .diagnostic import Diagnostic from .factory import create -from .meshes import Meshes -from .profile import Profile -__all__ = ["Profile", "Definition", "Meshes", "Diagnostic", "create"] +__all__ = ["Diagnostic", "create"] diff --git a/printer-linter/src/printerlinter/factory.py b/printer-linter/src/printerlinter/factory.py index 12e2d36628..3e76456af9 100644 --- a/printer-linter/src/printerlinter/factory.py +++ b/printer-linter/src/printerlinter/factory.py @@ -1,9 +1,12 @@ -from .profile import Profile -from .defintion import Definition -from .meshes import Meshes +from typing import Optional + +from .linters.profile import Profile +from .linters.defintion import Definition +from .linters.diagnostic_generator import DiagnosticGenerator +from .linters.meshes import Meshes -def create(file, settings): +def create(file, settings) -> Optional[DiagnosticGenerator]: if not file.exists(): return None if ".inst" in file.suffixes and ".cfg" in file.suffixes: diff --git a/printer-linter/src/printerlinter/linters/__init__.py b/printer-linter/src/printerlinter/linters/__init__.py new file mode 100644 index 0000000000..bf16caa933 --- /dev/null +++ b/printer-linter/src/printerlinter/linters/__init__.py @@ -0,0 +1,6 @@ +from .profile import Profile +from .meshes import Meshes +from .diagnostic_generator import DiagnosticGenerator +from .defintion import Definition + +__all__ = ["Profile", "Meshes", "DiagnosticGenerator", "Definition"] \ No newline at end of file diff --git a/printer-linter/src/printerlinter/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py similarity index 93% rename from printer-linter/src/printerlinter/defintion.py rename to printer-linter/src/printerlinter/linters/defintion.py index 4d47900d68..c5202f76eb 100644 --- a/printer-linter/src/printerlinter/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -1,15 +1,16 @@ import json import re from pathlib import Path +from typing import Iterator -from .diagnostic import Diagnostic -from .replacement import Replacement +from ..diagnostic import Diagnostic +from .diagnostic_generator import DiagnosticGenerator +from ..replacement import Replacement -class Definition: +class Definition(DiagnosticGenerator): def __init__(self, file, settings) -> None: - self._settings = settings - self._file = file + super().__init__(file, settings) self._defs = {} self._getDefs(file) @@ -20,7 +21,7 @@ class Definition: self._getSetting(k, v, settings) self._defs["fdmprinter"] = {"overrides": settings} - def check(self) -> None: + def check(self) -> Iterator[Diagnostic]: if self._settings["checks"].get("diagnostic-definition-redundant-override", False): for check in self.checkRedefineOverride(): yield check diff --git a/printer-linter/src/printerlinter/linters/diagnostic_generator.py b/printer-linter/src/printerlinter/linters/diagnostic_generator.py new file mode 100644 index 0000000000..17fccd51f6 --- /dev/null +++ b/printer-linter/src/printerlinter/linters/diagnostic_generator.py @@ -0,0 +1,14 @@ +from abc import ABC, abstractmethod +from typing import Iterator + +from ..diagnostic import Diagnostic + + +class DiagnosticGenerator(ABC): + def __init__(self, file, settings) -> None: + self._settings = settings + self._file = file + + @abstractmethod + def check(self) -> Iterator[Diagnostic]: + pass \ No newline at end of file diff --git a/printer-linter/src/printerlinter/meshes.py b/printer-linter/src/printerlinter/linters/meshes.py similarity index 89% rename from printer-linter/src/printerlinter/meshes.py rename to printer-linter/src/printerlinter/linters/meshes.py index 47205ce219..0a8d0aa8a6 100644 --- a/printer-linter/src/printerlinter/meshes.py +++ b/printer-linter/src/printerlinter/linters/meshes.py @@ -1,13 +1,14 @@ -from .diagnostic import Diagnostic +from typing import Iterator + +from ..diagnostic import Diagnostic class Meshes: def __init__(self, file, settings) -> None: - self._settings = settings - self._file = file + super().__init__(file, settings) self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6) - def check(self) -> None: + def check(self) -> Iterator[Diagnostic]: if self._settings["checks"].get("diagnostic-mesh-file-extension", False): for check in self.checkFileFormat(): yield check diff --git a/printer-linter/src/printerlinter/linters/profile.py b/printer-linter/src/printerlinter/linters/profile.py new file mode 100644 index 0000000000..ac48084943 --- /dev/null +++ b/printer-linter/src/printerlinter/linters/profile.py @@ -0,0 +1,9 @@ +from typing import Iterator + +from ..diagnostic import Diagnostic +from .diagnostic_generator import DiagnosticGenerator + + +class Profile(DiagnosticGenerator): + def check(self) -> Iterator[Diagnostic]: + yield diff --git a/printer-linter/src/printerlinter/profile.py b/printer-linter/src/printerlinter/profile.py deleted file mode 100644 index c5386ab0e8..0000000000 --- a/printer-linter/src/printerlinter/profile.py +++ /dev/null @@ -1,7 +0,0 @@ -class Profile: - def __init__(self, file, settings) -> None: - self._settings = settings - self._file = file - - def check(self) -> None: - yield From ad7e7191464e024c0520fc913ede468fd2bf1115 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Tue, 22 Nov 2022 21:42:42 +0100 Subject: [PATCH 123/185] Format lists and dicts of a single item onto one line example: "dict": { "value": 10 } becomes "dict": { "value": 10 } --- .printer-linter | 2 +- printer-linter/README.md | 11 +++++++++++ printer-linter/src/terminal.py | 6 +++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.printer-linter b/.printer-linter index 856649f420..f9f105e1f7 100644 --- a/.printer-linter +++ b/.printer-linter @@ -9,7 +9,7 @@ format: format-definition-paired-coordinate-array: true format-definition-sort-keys: true format-definition-indent: 4 - format-definition-single-value-single-line: true + format-definition-single-value-single-line: true # Format dicts and lists with a single item on one line "dict": { "value": 10 } format-profile-space-around-delimiters: true format-profile-sort-keys: true diagnostic-mesh-file-size: 1200000 \ No newline at end of file diff --git a/printer-linter/README.md b/printer-linter/README.md index e69de29bb2..64246e5440 100644 --- a/printer-linter/README.md +++ b/printer-linter/README.md @@ -0,0 +1,11 @@ +# Printer Linter +Printer linter is a python package that does linting on Cura definitions files. +Running this on your definition files will get them ready for a pull request. + +## Running Locally +From the Cura root folder. + +```python3 printer-linter/src/terminal.py "flashforge_dreamer_nx.def.json" "flashforge_base.def.json" --fix --format``` + +## Developing + diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index f388dda4c5..d363dc3812 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -49,7 +49,11 @@ def formatFile(file: Path, settings) -> None: content = newline.sub(r"\1\2:\1{", content) if settings["format"].get("format-definition-single-value-single-line", True): - pass # TODO: format entries in the override section which only define a single value to be on one line + single_value_dict = re.compile(r"(:)(\s*\n?.*\{\s+)(\".*)(\d*\s*\})(\s*)(,?)") + content = single_value_dict.sub(r"\1 { \3 }\6", content) + + single_value_list = re.compile(r"(:)(\s*\n?.*\[\s+)(\".*)(\d*\s*\])(\s*)(,?)") + content = single_value_list.sub(r"\1 [ \3 ]\6", content) if settings["format"].get("format-definition-paired-coordinate-array", True): paired_coordinates = re.compile(r"(\[)\s+(-?\d*),\s*(-?\d*)\s*(\])") From f74a40bed0db2990f6a5f6ef8f3febc6fb724bf8 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 14:24:09 +0100 Subject: [PATCH 124/185] Flatten main logic. Parse files from directories to remove checking if a file is a directory in many places. --- printer-linter/src/terminal.py | 43 +++++++++++++++++----------------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index d363dc3812..2fea211f1e 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -5,6 +5,7 @@ from argparse import ArgumentParser from collections import OrderedDict from os import getcwd from pathlib import Path +from typing import List import yaml @@ -74,6 +75,18 @@ def formatFile(file: Path, settings) -> None: config.write(f, space_around_delimiters=settings["format"].get("format-profile-space-around-delimiters", True)) +def extract_file_paths(paths: List[Path]) -> List[Path]: + """ Takes list of files and directories, returns the files as well as all files within directories as a List """ + file_paths = [] + for path in paths: + if path.is_dir(): + file_paths.extend(path.rglob("**/*")) + else: + file_paths.append(path) + + return file_paths + + def main() -> None: parser = ArgumentParser( description="UltiMaker Cura printer linting, static analysis and formatting of Cura printer definitions and other resources") @@ -85,7 +98,7 @@ def main() -> None: parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format") args = parser.parse_args() - files = args.Files + files = extract_file_paths(args.Files) setting_path = args.setting to_format = args.format to_fix = args.fix @@ -102,14 +115,11 @@ def main() -> None: with open(setting_path, "r") as f: settings = yaml.load(f, yaml.FullLoader) + full_body_check = {"Diagnostics": []} + if to_fix or to_diagnose: - full_body_check = {"Diagnostics": []} for file in files: - if file.is_dir(): - for fp in file.rglob("**/*"): - examineFile(fp, settings, full_body_check) - else: - examineFile(file, settings, full_body_check) + examineFile(file, settings, full_body_check) results = yaml.dump(full_body_check, default_flow_style=False, indent=4, width=240) if report: @@ -117,23 +127,14 @@ def main() -> None: else: print(results) - if to_fix: - for file in files: - if file.is_dir(): - for fp in file.rglob("**/*"): - if f"{file.as_posix()}" in full_body_check: - fixFile(fp, settings, full_body_check) - else: - if f"{file.as_posix()}" in full_body_check: - fixFile(file, settings, full_body_check) + if to_fix: + for file in files: + if f"{file.as_posix()}" in full_body_check: + fixFile(file, settings, full_body_check) if to_format: for file in files: - if file.is_dir(): - for fp in file.rglob("**/*"): - formatFile(fp, settings) - else: - formatFile(file, settings) + formatFile(file, settings) if __name__ == "__main__": From 4f4523c4b7189cd53d6d9c9facdb1e21c8157777 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 14:38:31 +0100 Subject: [PATCH 125/185] Use Diagnostic Generator super for Meshes --- printer-linter/src/printerlinter/linters/meshes.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/printer-linter/src/printerlinter/linters/meshes.py b/printer-linter/src/printerlinter/linters/meshes.py index 0a8d0aa8a6..908f405072 100644 --- a/printer-linter/src/printerlinter/linters/meshes.py +++ b/printer-linter/src/printerlinter/linters/meshes.py @@ -1,9 +1,10 @@ from typing import Iterator from ..diagnostic import Diagnostic +from .diagnostic_generator import DiagnosticGenerator -class Meshes: +class Meshes(DiagnosticGenerator): def __init__(self, file, settings) -> None: super().__init__(file, settings) self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6) From 44af869a2cda08ee447e3e8babb1086dc481fd7c Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 14:59:53 +0100 Subject: [PATCH 126/185] Add documentation to diagnostic and reformat file. --- .../src/printerlinter/diagnostic.py | 36 +++++++++++++------ 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/printer-linter/src/printerlinter/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py index a6843ed38f..a379ff6ba2 100644 --- a/printer-linter/src/printerlinter/diagnostic.py +++ b/printer-linter/src/printerlinter/diagnostic.py @@ -1,5 +1,20 @@ +from pathlib import Path +from typing import Optional, List + +from .replacement import Replacement + + class Diagnostic: - def __init__(self, file, diagnostic_name, message, level, offset, replacements=None) -> None: + def __init__(self, file: Path, diagnostic_name: str, message: str, level: str, offset: int, replacements: Optional[List[Replacement]] = None) -> None: + """ A diagnosis of an issue in "file" at "offset" in that file. May include suggested replacements. + + @param file: The path to the file this diagnostic is for. + @param diagnostic_name: The name of the diagnostic rule that spawned this result. A list can be found in .printer-linter. + @param message: A message explaining the issue with this piece of text. + @param level: How important this diagnostic is, ranges from Warning -> Error. + @param offset: The offset in file where the issue is. + @param replacements: A list of Replacement that contain replacement text. + """ self.file = file self.diagnostic_name = diagnostic_name self.message = message @@ -8,13 +23,12 @@ class Diagnostic: self.replacements = replacements def toDict(self) -> dict: - diagnostic_dict = {"DiagnosticName": self.diagnostic_name, - "DiagnosticMessage": { - "Message": self.message, - "FilePath": self.file.as_posix(), - "FileOffset": self.offset, - "Replacements": [] if self.replacements is None else [r.toDict() for r in self.replacements], - }, - "Level": self.level - } - return diagnostic_dict + return {"DiagnosticName": self.diagnostic_name, + "DiagnosticMessage": { + "Message": self.message, + "FilePath": self.file.as_posix(), + "FileOffset": self.offset, + "Replacements": [] if self.replacements is None else [r.toDict() for r in self.replacements], + }, + "Level": self.level + } From c097838614c2182c9f322256575246c87f479877 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 15:07:28 +0100 Subject: [PATCH 127/185] Add replacement documenation --- printer-linter/src/printerlinter/replacement.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/printer-linter/src/printerlinter/replacement.py b/printer-linter/src/printerlinter/replacement.py index bc6b58a97b..340365a5c3 100644 --- a/printer-linter/src/printerlinter/replacement.py +++ b/printer-linter/src/printerlinter/replacement.py @@ -1,5 +1,15 @@ +from pathlib import Path + + class Replacement: - def __init__(self, file, offset, length, replacement_text): + def __init__(self, file: Path, offset: int, length: int, replacement_text: str): + """ Replacement text for file between offset and offset+length. + + @param file: File to replace text in + @param offset: Offset in file to start text replace + @param length: Length of text that will be replaced. offset -> offset+length is the section of text to replace. + @param replacement_text: Text to insert of offset in file. + """ self.file = file self.offset = offset self.length = length From f49f8b3cb89245eaf96a266a5a237de57f5d0493 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 15:10:55 +0100 Subject: [PATCH 128/185] Add some documentation to factory and format file. --- printer-linter/src/printerlinter/factory.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/printer-linter/src/printerlinter/factory.py b/printer-linter/src/printerlinter/factory.py index 3e76456af9..c573507db9 100644 --- a/printer-linter/src/printerlinter/factory.py +++ b/printer-linter/src/printerlinter/factory.py @@ -1,3 +1,4 @@ +from pathlib import Path from typing import Optional from .linters.profile import Profile @@ -6,15 +7,17 @@ from .linters.diagnostic_generator import DiagnosticGenerator from .linters.meshes import Meshes -def create(file, settings) -> Optional[DiagnosticGenerator]: +def create(file: Path, settings) -> Optional[DiagnosticGenerator]: + """ Returns a DiagnosticGenerator depending on the file format """ if not file.exists(): return None - if ".inst" in file.suffixes and ".cfg" in file.suffixes: + elif ".inst" in file.suffixes and ".cfg" in file.suffixes: return Profile(file, settings) - if ".def" in file.suffixes and ".json" in file.suffixes: + elif ".def" in file.suffixes and ".json" in file.suffixes: if file.stem in ("fdmprinter.def", "fdmextruder.def"): return None return Definition(file, settings) - if file.parent.stem == "meshes": + elif file.parent.stem == "meshes": return Meshes(file, settings) - return None \ No newline at end of file + + return None From d19f1f3e42eccefd425b9354ec5211c72275d8c7 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 15:20:42 +0100 Subject: [PATCH 129/185] Add typing for file and settings. Add diagnostic generator documentation --- printer-linter/src/printerlinter/factory.py | 2 +- printer-linter/src/printerlinter/linters/defintion.py | 2 +- .../src/printerlinter/linters/diagnostic_generator.py | 8 +++++++- printer-linter/src/printerlinter/linters/meshes.py | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/printer-linter/src/printerlinter/factory.py b/printer-linter/src/printerlinter/factory.py index c573507db9..24f1b504cf 100644 --- a/printer-linter/src/printerlinter/factory.py +++ b/printer-linter/src/printerlinter/factory.py @@ -7,7 +7,7 @@ from .linters.diagnostic_generator import DiagnosticGenerator from .linters.meshes import Meshes -def create(file: Path, settings) -> Optional[DiagnosticGenerator]: +def create(file: Path, settings: dict) -> Optional[DiagnosticGenerator]: """ Returns a DiagnosticGenerator depending on the file format """ if not file.exists(): return None diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index c5202f76eb..2f50f2542c 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -9,7 +9,7 @@ from ..replacement import Replacement class Definition(DiagnosticGenerator): - def __init__(self, file, settings) -> None: + def __init__(self, file: Path, settings: dict) -> None: super().__init__(file, settings) self._defs = {} self._getDefs(file) diff --git a/printer-linter/src/printerlinter/linters/diagnostic_generator.py b/printer-linter/src/printerlinter/linters/diagnostic_generator.py index 17fccd51f6..52f132a3c8 100644 --- a/printer-linter/src/printerlinter/linters/diagnostic_generator.py +++ b/printer-linter/src/printerlinter/linters/diagnostic_generator.py @@ -1,11 +1,17 @@ from abc import ABC, abstractmethod +from pathlib import Path from typing import Iterator from ..diagnostic import Diagnostic class DiagnosticGenerator(ABC): - def __init__(self, file, settings) -> None: + def __init__(self, file: Path, settings: dict) -> None: + """ Yields Diagnostics for file, these are suggested text replacements based on formatting rules in settings. + + @param file: A file to generate diagnostics for + @param settings: A list of settings containing rules for creating diagnostics + """ self._settings = settings self._file = file diff --git a/printer-linter/src/printerlinter/linters/meshes.py b/printer-linter/src/printerlinter/linters/meshes.py index 908f405072..c7ee058086 100644 --- a/printer-linter/src/printerlinter/linters/meshes.py +++ b/printer-linter/src/printerlinter/linters/meshes.py @@ -1,3 +1,4 @@ +from pathlib import Path from typing import Iterator from ..diagnostic import Diagnostic @@ -5,7 +6,7 @@ from .diagnostic_generator import DiagnosticGenerator class Meshes(DiagnosticGenerator): - def __init__(self, file, settings) -> None: + def __init__(self, file: Path, settings: dict) -> None: super().__init__(file, settings) self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6) From 0b2e4099293f715e18c8184749120f36aab27ea3 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 15:25:13 +0100 Subject: [PATCH 130/185] Update documentation on diagnostic to be less specifically about strings. Since diagnostics can be related to other issues. --- printer-linter/src/printerlinter/diagnostic.py | 2 +- .../src/printerlinter/linters/diagnostic_generator.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/printer-linter/src/printerlinter/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py index a379ff6ba2..d5eb237c29 100644 --- a/printer-linter/src/printerlinter/diagnostic.py +++ b/printer-linter/src/printerlinter/diagnostic.py @@ -10,7 +10,7 @@ class Diagnostic: @param file: The path to the file this diagnostic is for. @param diagnostic_name: The name of the diagnostic rule that spawned this result. A list can be found in .printer-linter. - @param message: A message explaining the issue with this piece of text. + @param message: A message explaining the issue with this file. @param level: How important this diagnostic is, ranges from Warning -> Error. @param offset: The offset in file where the issue is. @param replacements: A list of Replacement that contain replacement text. diff --git a/printer-linter/src/printerlinter/linters/diagnostic_generator.py b/printer-linter/src/printerlinter/linters/diagnostic_generator.py index 52f132a3c8..b259487828 100644 --- a/printer-linter/src/printerlinter/linters/diagnostic_generator.py +++ b/printer-linter/src/printerlinter/linters/diagnostic_generator.py @@ -7,7 +7,7 @@ from ..diagnostic import Diagnostic class DiagnosticGenerator(ABC): def __init__(self, file: Path, settings: dict) -> None: - """ Yields Diagnostics for file, these are suggested text replacements based on formatting rules in settings. + """ Yields Diagnostics for file, these are issues with the file such as bad text format or too large file size. @param file: A file to generate diagnostics for @param settings: A list of settings containing rules for creating diagnostics From 437b05f60834ca12f0dc4186f8ac412e1138959a Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 15:28:57 +0100 Subject: [PATCH 131/185] Add some doc strings --- printer-linter/src/printerlinter/linters/meshes.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/printer-linter/src/printerlinter/linters/meshes.py b/printer-linter/src/printerlinter/linters/meshes.py index c7ee058086..d31c54fdcd 100644 --- a/printer-linter/src/printerlinter/linters/meshes.py +++ b/printer-linter/src/printerlinter/linters/meshes.py @@ -7,6 +7,7 @@ from .diagnostic_generator import DiagnosticGenerator class Meshes(DiagnosticGenerator): def __init__(self, file: Path, settings: dict) -> None: + """ Finds issues in model files, such as incorrect file format or too large size """ super().__init__(file, settings) self._max_file_size = self._settings.get("diagnostic-mesh-file-size", 1e6) @@ -21,7 +22,8 @@ class Meshes(DiagnosticGenerator): yield - def checkFileFormat(self) -> None: + def checkFileFormat(self) -> Iterator[Diagnostic]: + """ Check if mesh is in supported format """ if self._file.suffix.lower() not in (".3mf", ".obj", ".stl"): yield Diagnostic( file = self._file, @@ -32,7 +34,8 @@ class Meshes(DiagnosticGenerator): ) yield - def checkFileSize(self): + def checkFileSize(self) -> Iterator[Diagnostic]: + """ Check if file is within size limits for Cura """ if self._file.stat().st_size > self._max_file_size: yield Diagnostic( file = self._file, From ad436f37f875f47fc80e87c811be829d1f154afc Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 16:48:39 +0100 Subject: [PATCH 132/185] Add some comments and refactoring --- .../src/printerlinter/linters/defintion.py | 67 ++++++++++--------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index 2f50f2542c..7e80bcdff1 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -9,17 +9,13 @@ from ..replacement import Replacement class Definition(DiagnosticGenerator): + """ Finds issues in definition files, such as overriding default parameters """ def __init__(self, file: Path, settings: dict) -> None: super().__init__(file, settings) - self._defs = {} - self._getDefs(file) - + self._definitions = {} + self._loadDefinitionFiles(file) self._content = self._file.read_text() - - settings = {} - for k, v in self._defs["fdmprinter"]["settings"].items(): - self._getSetting(k, v, settings) - self._defs["fdmprinter"] = {"overrides": settings} + self._loadBasePrinterSettings() def check(self) -> Iterator[Diagnostic]: if self._settings["checks"].get("diagnostic-definition-redundant-override", False): @@ -33,9 +29,10 @@ class Definition(DiagnosticGenerator): yield - def checkRedefineOverride(self) -> None: - definition_name = list(self._defs.keys())[0] - definition = self._defs[definition_name] + def checkRedefineOverride(self) -> Iterator[Diagnostic]: + """ Checks if definition file overrides its parents settings with the same value. """ + definition_name = list(self._definitions.keys())[0] + definition = self._definitions[definition_name] if "overrides" in definition and definition_name != "fdmprinter": for key, value_dict in definition["overrides"].items(): is_redefined, value, parent = self._isDefinedInParent(key, value_dict, definition['inherits']) @@ -55,30 +52,27 @@ class Definition(DiagnosticGenerator): replacement_text = "")] ) - def checkValueOutOfBounds(self) -> None: - pass + def _loadDefinitionFiles(self, definition_file) -> None: + """ Loads definition file contents into self._definitions. Also load parent definition if it exists. """ + definition_name = Path(definition_file.stem).stem - def _getSetting(self, name, setting, settings) -> None: - if "children" in setting: - for childname, child in setting["children"].items(): - self._getSetting(childname, child, settings) - settings |= {name: setting} - - def _getDefs(self, file) -> None: - """ Loads up file, and it's parent definitions into self._defs """ - if not file.exists() or Path(file.stem).stem in self._defs: + if not definition_file.exists() or definition_name in self._definitions: return - self._defs[Path(file.stem).stem] = json.loads(file.read_text()) - if "inherits" in self._defs[Path(file.stem).stem]: - parent_file = file.parent.joinpath(f"{self._defs[Path(file.stem).stem]['inherits']}.def.json") - self._getDefs(parent_file) + + # Load definition file into dictionary + self._definitions[definition_name] = json.loads(definition_file.read_text()) + + # Load parent definition if it exists + if "inherits" in self._definitions[definition_name]: + parent_file = definition_file.parent.joinpath(f"{self._definitions[definition_name]['inherits']}.def.json") + self._loadDefinitionFiles(parent_file) def _isDefinedInParent(self, key, value_dict, inherits_from): - if "overrides" not in self._defs[inherits_from]: - return self._isDefinedInParent(key, value_dict, self._defs[inherits_from]["inherits"]) + if "overrides" not in self._definitions[inherits_from]: + return self._isDefinedInParent(key, value_dict, self._definitions[inherits_from]["inherits"]) - parent = self._defs[inherits_from]["overrides"] - is_number = self._defs["fdmprinter"]["overrides"][key] in ("float", "int") + parent = self._definitions[inherits_from]["overrides"] + is_number = self._definitions["fdmprinter"]["overrides"][key] in ("float", "int") for value in value_dict.values(): if key in parent: check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None] @@ -101,3 +95,16 @@ class Definition(DiagnosticGenerator): if "inherits" in parent: return self._isDefinedInParent(key, value_dict, parent["inherits"]) return False, None, None + + def _loadBasePrinterSettings(self): + """ TODO @Jelle please explain why this """ + settings = {} + for k, v in self._definitions["fdmprinter"]["settings"].items(): + self._getSetting(k, v, settings) + self._definitions["fdmprinter"] = {"overrides": settings} + + def _getSetting(self, name, setting, settings) -> None: + if "children" in setting: + for childname, child in setting["children"].items(): + self._getSetting(childname, child, settings) + settings |= {name: setting} From b6ac85d251de4d86940943a8c580bddf974102c0 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 17:19:14 +0100 Subject: [PATCH 133/185] Add separate package with file formatters. --- .../src/printerlinter/formatters/__init__.py | 4 +++ .../formatters/def_json_formatter.py | 29 +++++++++++++++++++ .../src/printerlinter/formatters/formatter.py | 16 ++++++++++ .../formatters/inst_cfg_formatter.py | 21 ++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 printer-linter/src/printerlinter/formatters/__init__.py create mode 100644 printer-linter/src/printerlinter/formatters/def_json_formatter.py create mode 100644 printer-linter/src/printerlinter/formatters/formatter.py create mode 100644 printer-linter/src/printerlinter/formatters/inst_cfg_formatter.py diff --git a/printer-linter/src/printerlinter/formatters/__init__.py b/printer-linter/src/printerlinter/formatters/__init__.py new file mode 100644 index 0000000000..8f5a01bb25 --- /dev/null +++ b/printer-linter/src/printerlinter/formatters/__init__.py @@ -0,0 +1,4 @@ +from def_json_formatter import DefJsonFormatter +from inst_cfg_formatter import InstCfgFormatter + +__all__ = ["DefJsonFormatter", "InstCfgFormatter"] \ No newline at end of file diff --git a/printer-linter/src/printerlinter/formatters/def_json_formatter.py b/printer-linter/src/printerlinter/formatters/def_json_formatter.py new file mode 100644 index 0000000000..ddeccacffd --- /dev/null +++ b/printer-linter/src/printerlinter/formatters/def_json_formatter.py @@ -0,0 +1,29 @@ +import json +import re +from pathlib import Path + +from .formatter import FileFormatter + +class DefJsonFormatter(FileFormatter): + def format(self, file: Path): + """ Format .def.json files according to the rules in settings """ + definition = json.loads(file.read_text()) + content = json.dumps(definition, indent=self._settings["format"].get("format-definition-indent", 4), + sort_keys=self._settings["format"].get("format-definition-sort-keys", True)) + + if self._settings["format"].get("format-definition-bracket-newline", True): + newline = re.compile(r"(\B\s+)(\"[\w\"]+)(\:\s\{)") + content = newline.sub(r"\1\2:\1{", content) + + if self._settings["format"].get("format-definition-single-value-single-line", True): + single_value_dict = re.compile(r"(:)(\s*\n?.*\{\s+)(\".*)(\d*\s*\})(\s*)(,?)") + content = single_value_dict.sub(r"\1 { \3 }\6", content) + + single_value_list = re.compile(r"(:)(\s*\n?.*\[\s+)(\".*)(\d*\s*\])(\s*)(,?)") + content = single_value_list.sub(r"\1 [ \3 ]\6", content) + + if self._settings["format"].get("format-definition-paired-coordinate-array", True): + paired_coordinates = re.compile(r"(\[)\s+(-?\d*),\s*(-?\d*)\s*(\])") + content = paired_coordinates.sub(r"\1 \2, \3 \4", content) + + file.write_text(content) \ No newline at end of file diff --git a/printer-linter/src/printerlinter/formatters/formatter.py b/printer-linter/src/printerlinter/formatters/formatter.py new file mode 100644 index 0000000000..1425825a82 --- /dev/null +++ b/printer-linter/src/printerlinter/formatters/formatter.py @@ -0,0 +1,16 @@ +from abc import ABC, abstractmethod +from pathlib import Path + + +class FileFormatter(ABC): + def __init__(self, settings: dict) -> None: + """ Yields Diagnostics for file, these are issues with the file such as bad text format or too large file size. + + @param file: A file to generate diagnostics for + @param settings: A list of settings containing rules for creating diagnostics + """ + self._settings = settings + + @abstractmethod + def format(self, file: Path) -> None: + pass \ No newline at end of file diff --git a/printer-linter/src/printerlinter/formatters/inst_cfg_formatter.py b/printer-linter/src/printerlinter/formatters/inst_cfg_formatter.py new file mode 100644 index 0000000000..fc6ccf3c81 --- /dev/null +++ b/printer-linter/src/printerlinter/formatters/inst_cfg_formatter.py @@ -0,0 +1,21 @@ +import configparser +import json +import re +from collections import OrderedDict +from pathlib import Path + +from .formatter import FileFormatter + +class InstCfgFormatter(FileFormatter): + def format(self, file: Path): + """ Format .inst.cfg files according to the rules in settings """ + config = configparser.ConfigParser() + config.read(file) + + if self._settings["format"].get("format-profile-sort-keys", True): + for section in config._sections: + config._sections[section] = OrderedDict(sorted(config._sections[section].items(), key=lambda t: t[0])) + config._sections = OrderedDict(sorted(config._sections.items(), key=lambda t: t[0])) + + with open(file, "w") as f: + config.write(f, space_around_delimiters=self._settings["format"].get("format-profile-space-around-delimiters", True)) \ No newline at end of file From a7800f824a7cebab14533e76f6d96bbe6b3540b6 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 17:20:22 +0100 Subject: [PATCH 134/185] Use formatters in terminal.py Do some general refactoring for readability --- .../src/printerlinter/formatters/__init__.py | 4 +- printer-linter/src/terminal.py | 143 ++++++++---------- 2 files changed, 62 insertions(+), 85 deletions(-) diff --git a/printer-linter/src/printerlinter/formatters/__init__.py b/printer-linter/src/printerlinter/formatters/__init__.py index 8f5a01bb25..00d9c7eef3 100644 --- a/printer-linter/src/printerlinter/formatters/__init__.py +++ b/printer-linter/src/printerlinter/formatters/__init__.py @@ -1,4 +1,4 @@ -from def_json_formatter import DefJsonFormatter -from inst_cfg_formatter import InstCfgFormatter +from .def_json_formatter import DefJsonFormatter +from .inst_cfg_formatter import InstCfgFormatter __all__ = ["DefJsonFormatter", "InstCfgFormatter"] \ No newline at end of file diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index 2fea211f1e..212de624a6 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -1,8 +1,4 @@ -import configparser -import json -import re from argparse import ArgumentParser -from collections import OrderedDict from os import getcwd from pathlib import Path from typing import List @@ -10,81 +6,9 @@ from typing import List import yaml from printerlinter import factory - - -def examineFile(file, settings, full_body_check) -> None: - patient = factory.create(file, settings) - if patient is None: - return - - for diagnostic in patient.check(): - if diagnostic: - full_body_check["Diagnostics"].append(diagnostic.toDict()) - - -def fixFile(file, settings, full_body_check) -> None: - if not file.exists(): - return - ext = ".".join(file.name.split(".")[-2:]) - - if ext == "def.json": - issues = full_body_check[f"{file.as_posix()}"] - for issue in issues: - if issue["diagnostic"] == "diagnostic-definition-redundant-override" and settings["fixes"].get( - "diagnostic-definition-redundant-override", True): - pass - - -def formatFile(file: Path, settings) -> None: - if not file.exists(): - return - ext = ".".join(file.name.split(".")[-2:]) - - if ext == "def.json": - definition = json.loads(file.read_text()) - content = json.dumps(definition, indent=settings["format"].get("format-definition-indent", 4), - sort_keys=settings["format"].get("format-definition-sort-keys", True)) - - if settings["format"].get("format-definition-bracket-newline", True): - newline = re.compile(r"(\B\s+)(\"[\w\"]+)(\:\s\{)") - content = newline.sub(r"\1\2:\1{", content) - - if settings["format"].get("format-definition-single-value-single-line", True): - single_value_dict = re.compile(r"(:)(\s*\n?.*\{\s+)(\".*)(\d*\s*\})(\s*)(,?)") - content = single_value_dict.sub(r"\1 { \3 }\6", content) - - single_value_list = re.compile(r"(:)(\s*\n?.*\[\s+)(\".*)(\d*\s*\])(\s*)(,?)") - content = single_value_list.sub(r"\1 [ \3 ]\6", content) - - if settings["format"].get("format-definition-paired-coordinate-array", True): - paired_coordinates = re.compile(r"(\[)\s+(-?\d*),\s*(-?\d*)\s*(\])") - content = paired_coordinates.sub(r"\1 \2, \3 \4", content) - - file.write_text(content) - - if ext == "inst.cfg": - config = configparser.ConfigParser() - config.read(file) - - if settings["format"].get("format-profile-sort-keys", True): - for section in config._sections: - config._sections[section] = OrderedDict(sorted(config._sections[section].items(), key=lambda t: t[0])) - config._sections = OrderedDict(sorted(config._sections.items(), key=lambda t: t[0])) - - with open(file, "w") as f: - config.write(f, space_around_delimiters=settings["format"].get("format-profile-space-around-delimiters", True)) - - -def extract_file_paths(paths: List[Path]) -> List[Path]: - """ Takes list of files and directories, returns the files as well as all files within directories as a List """ - file_paths = [] - for path in paths: - if path.is_dir(): - file_paths.extend(path.rglob("**/*")) - else: - file_paths.append(path) - - return file_paths +from printerlinter.diagnostic import Diagnostic +from printerlinter.formatters.def_json_formatter import DefJsonFormatter +from printerlinter.formatters.inst_cfg_formatter import InstCfgFormatter def main() -> None: @@ -98,7 +22,7 @@ def main() -> None: parser.add_argument("Files", metavar="F", type=Path, nargs="+", help="Files or directories to format") args = parser.parse_args() - files = extract_file_paths(args.Files) + files = extractFilePaths(args.Files) setting_path = args.setting to_format = args.format to_fix = args.fix @@ -119,9 +43,11 @@ def main() -> None: if to_fix or to_diagnose: for file in files: - examineFile(file, settings, full_body_check) + diagnostics = diagnoseIssuesWithFile(file, settings) + full_body_check["Diagnostics"].extend([d.toDict() for d in diagnostics]) results = yaml.dump(full_body_check, default_flow_style=False, indent=4, width=240) + if report: report.write_text(results) else: @@ -130,11 +56,62 @@ def main() -> None: if to_fix: for file in files: if f"{file.as_posix()}" in full_body_check: - fixFile(file, settings, full_body_check) + applyFixesToFile(file, settings, full_body_check) if to_format: for file in files: - formatFile(file, settings) + applyFormattingToFile(file, settings) + + +def diagnoseIssuesWithFile(file: Path, settings: dict) -> List[Diagnostic]: + """ For file, runs all diagnostic checks in settings and returns a list of diagnostics """ + # Find correct diagnostic generator for file + diagnostic_generator = factory.create(file, settings) + + if not diagnostic_generator: + return [] + + return list(filter(lambda d: d, diagnostic_generator.check())) + + +def applyFixesToFile(file, settings, full_body_check) -> None: + if not file.exists(): + return + ext = ".".join(file.name.split(".")[-2:]) + + if ext == "def.json": + issues = full_body_check[f"{file.as_posix()}"] + for issue in issues: + if issue["diagnostic"] == "diagnostic-definition-redundant-override" and settings["fixes"].get( + "diagnostic-definition-redundant-override", True): + pass + + +def applyFormattingToFile(file: Path, settings) -> None: + if not file.exists(): + return + + ext = ".".join(file.name.split(".")[-2:]) + + if ext == "def.json": + formatter = DefJsonFormatter(settings) + formatter.format(file) + + if ext == "inst.cfg": + formatter = InstCfgFormatter(settings) + formatter.format(file) + + +def extractFilePaths(paths: List[Path]) -> List[Path]: + """ Takes list of files and directories, returns the files as well as all files within directories as a List """ + file_paths = [] + for path in paths: + if path.is_dir(): + file_paths.extend(path.rglob("**/*")) + else: + file_paths.append(path) + + return file_paths if __name__ == "__main__": From 8e027c4af9bddad5b7ce0b8664cf5d2522a8cffc Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 17:21:31 +0100 Subject: [PATCH 135/185] Add is not None because it makes it clearer that the lamdba returns a boolean. --- printer-linter/src/terminal.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index 212de624a6..68be569351 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -71,7 +71,7 @@ def diagnoseIssuesWithFile(file: Path, settings: dict) -> List[Diagnostic]: if not diagnostic_generator: return [] - return list(filter(lambda d: d, diagnostic_generator.check())) + return list(filter(lambda d: d is not None, diagnostic_generator.check())) def applyFixesToFile(file, settings, full_body_check) -> None: From e83ed933e28394dd6c11d046e9bc9adfe3bee123 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Wed, 23 Nov 2022 17:52:33 +0100 Subject: [PATCH 136/185] Update readme with instruction for developing. Change DiagnosticGenerator -> Linter since this is much easier to understand. --- printer-linter/README.md | 22 +++++++++++++++++++ printer-linter/src/printerlinter/__init__.py | 4 ++-- printer-linter/src/printerlinter/factory.py | 6 ++--- .../src/printerlinter/linters/__init__.py | 4 ++-- .../src/printerlinter/linters/defintion.py | 4 ++-- .../{diagnostic_generator.py => linter.py} | 2 +- .../src/printerlinter/linters/meshes.py | 4 ++-- .../src/printerlinter/linters/profile.py | 4 ++-- .../src/printerlinter/replacement.py | 1 - printer-linter/src/terminal.py | 7 +++--- 10 files changed, 39 insertions(+), 19 deletions(-) rename printer-linter/src/printerlinter/linters/{diagnostic_generator.py => linter.py} (94%) diff --git a/printer-linter/README.md b/printer-linter/README.md index 64246e5440..fc6a9a8e29 100644 --- a/printer-linter/README.md +++ b/printer-linter/README.md @@ -8,4 +8,26 @@ From the Cura root folder. ```python3 printer-linter/src/terminal.py "flashforge_dreamer_nx.def.json" "flashforge_base.def.json" --fix --format``` ## Developing +### Printer Linter Rules +Inside ```.printer-linter``` you can find a list of rules. These are seperated into roughly three categories. + +1. Checks + 1. These rules are about checking if a file meets some requirements that can't be fixed by replacing its content. + 2. An example of a check is ```diagnostic-mesh-file-extension``` this checks if a mesh file extension is acceptable. +2. Format + 1. These rules are purely about how a file is structured, not content. + 2. An example of a format rule is ```format-definition-bracket-newline``` This rule says that when assigning a dict value the bracket should go on a new line. +3. Fixes + 1. These are about the content of the file. + 2. An example of a fix is ```diagnostic-definition-redundant-override``` This removes settings that have already been defined by a parent definition + +### Linters +Linters find issues within a file. There are separate linters for each type of file. The linter that is used is decided by the create function in factory.py. All linters implement the abstract class Linter. + +A Linter class returns an iterator of Diagnostics, each diagnostic is an issue with the file. The diagnostics can also contain suggested fixes. + +### Formatters +Formatters load a file reformat it and write it to disk. There are separate formatters for each file type. All formatters implement the abstract class Formatter. + +Formatters should format based on the Format rules in .printer-linter diff --git a/printer-linter/src/printerlinter/__init__.py b/printer-linter/src/printerlinter/__init__.py index a157443ff5..3ec571c3c6 100644 --- a/printer-linter/src/printerlinter/__init__.py +++ b/printer-linter/src/printerlinter/__init__.py @@ -1,4 +1,4 @@ from .diagnostic import Diagnostic -from .factory import create +from .factory import getLinter -__all__ = ["Diagnostic", "create"] +__all__ = ["Diagnostic", "getLinter"] diff --git a/printer-linter/src/printerlinter/factory.py b/printer-linter/src/printerlinter/factory.py index 24f1b504cf..7cff08df2c 100644 --- a/printer-linter/src/printerlinter/factory.py +++ b/printer-linter/src/printerlinter/factory.py @@ -3,12 +3,12 @@ from typing import Optional from .linters.profile import Profile from .linters.defintion import Definition -from .linters.diagnostic_generator import DiagnosticGenerator +from .linters.linter import Linter from .linters.meshes import Meshes -def create(file: Path, settings: dict) -> Optional[DiagnosticGenerator]: - """ Returns a DiagnosticGenerator depending on the file format """ +def getLinter(file: Path, settings: dict) -> Optional[Linter]: + """ Returns a Linter depending on the file format """ if not file.exists(): return None elif ".inst" in file.suffixes and ".cfg" in file.suffixes: diff --git a/printer-linter/src/printerlinter/linters/__init__.py b/printer-linter/src/printerlinter/linters/__init__.py index bf16caa933..a4a48acb3d 100644 --- a/printer-linter/src/printerlinter/linters/__init__.py +++ b/printer-linter/src/printerlinter/linters/__init__.py @@ -1,6 +1,6 @@ from .profile import Profile from .meshes import Meshes -from .diagnostic_generator import DiagnosticGenerator +from .linter import Linter from .defintion import Definition -__all__ = ["Profile", "Meshes", "DiagnosticGenerator", "Definition"] \ No newline at end of file +__all__ = ["Profile", "Meshes", "Linter", "Definition"] \ No newline at end of file diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index 7e80bcdff1..909265e829 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -4,11 +4,11 @@ from pathlib import Path from typing import Iterator from ..diagnostic import Diagnostic -from .diagnostic_generator import DiagnosticGenerator +from .linter import Linter from ..replacement import Replacement -class Definition(DiagnosticGenerator): +class Definition(Linter): """ Finds issues in definition files, such as overriding default parameters """ def __init__(self, file: Path, settings: dict) -> None: super().__init__(file, settings) diff --git a/printer-linter/src/printerlinter/linters/diagnostic_generator.py b/printer-linter/src/printerlinter/linters/linter.py similarity index 94% rename from printer-linter/src/printerlinter/linters/diagnostic_generator.py rename to printer-linter/src/printerlinter/linters/linter.py index b259487828..fbcd91196d 100644 --- a/printer-linter/src/printerlinter/linters/diagnostic_generator.py +++ b/printer-linter/src/printerlinter/linters/linter.py @@ -5,7 +5,7 @@ from typing import Iterator from ..diagnostic import Diagnostic -class DiagnosticGenerator(ABC): +class Linter(ABC): def __init__(self, file: Path, settings: dict) -> None: """ Yields Diagnostics for file, these are issues with the file such as bad text format or too large file size. diff --git a/printer-linter/src/printerlinter/linters/meshes.py b/printer-linter/src/printerlinter/linters/meshes.py index d31c54fdcd..d49caf7dc9 100644 --- a/printer-linter/src/printerlinter/linters/meshes.py +++ b/printer-linter/src/printerlinter/linters/meshes.py @@ -2,10 +2,10 @@ from pathlib import Path from typing import Iterator from ..diagnostic import Diagnostic -from .diagnostic_generator import DiagnosticGenerator +from .linter import Linter -class Meshes(DiagnosticGenerator): +class Meshes(Linter): def __init__(self, file: Path, settings: dict) -> None: """ Finds issues in model files, such as incorrect file format or too large size """ super().__init__(file, settings) diff --git a/printer-linter/src/printerlinter/linters/profile.py b/printer-linter/src/printerlinter/linters/profile.py index ac48084943..85cc2d9f0b 100644 --- a/printer-linter/src/printerlinter/linters/profile.py +++ b/printer-linter/src/printerlinter/linters/profile.py @@ -1,9 +1,9 @@ from typing import Iterator from ..diagnostic import Diagnostic -from .diagnostic_generator import DiagnosticGenerator +from .linter import Linter -class Profile(DiagnosticGenerator): +class Profile(Linter): def check(self) -> Iterator[Diagnostic]: yield diff --git a/printer-linter/src/printerlinter/replacement.py b/printer-linter/src/printerlinter/replacement.py index 340365a5c3..b9f390107d 100644 --- a/printer-linter/src/printerlinter/replacement.py +++ b/printer-linter/src/printerlinter/replacement.py @@ -1,6 +1,5 @@ from pathlib import Path - class Replacement: def __init__(self, file: Path, offset: int, length: int, replacement_text: str): """ Replacement text for file between offset and offset+length. diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index 68be569351..3591d841a4 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -65,13 +65,12 @@ def main() -> None: def diagnoseIssuesWithFile(file: Path, settings: dict) -> List[Diagnostic]: """ For file, runs all diagnostic checks in settings and returns a list of diagnostics """ - # Find correct diagnostic generator for file - diagnostic_generator = factory.create(file, settings) + linter = factory.getLinter(file, settings) - if not diagnostic_generator: + if not linter: return [] - return list(filter(lambda d: d is not None, diagnostic_generator.check())) + return list(filter(lambda d: d is not None, linter.check())) def applyFixesToFile(file, settings, full_body_check) -> None: From 7e84082aff26195d82b8d3c9239dee863949c099 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 24 Nov 2022 13:55:31 +0100 Subject: [PATCH 137/185] Add quality type to ufp files Cura-9773 --- cura/Settings/MachineManager.py | 17 ++++++++++++----- plugins/UFPWriter/UFPWriter.py | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 27d8fbbc78..b5d43ba8a1 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1764,14 +1764,21 @@ class MachineManager(QObject): global_stack = self._application.getGlobalContainerStack() return global_stack is None or global_stack.qualityChanges != empty_quality_changes_container - @pyqtProperty(str, notify = activeQualityGroupChanged) - def activeQualityOrQualityChangesName(self) -> str: + def activeQualityOrQualityChanges(self) -> GlobalStack: global_container_stack = self._application.getGlobalContainerStack() if not global_container_stack: - return empty_quality_container.getName() + return empty_quality_container if global_container_stack.qualityChanges != empty_quality_changes_container: - return global_container_stack.qualityChanges.getName() - return global_container_stack.quality.getName() + return global_container_stack.qualityChanges + return global_container_stack.quality + + @pyqtProperty(str, notify = activeQualityGroupChanged) + def activeQualityOrQualityChangesName(self) -> str: + return self.activeQualityOrQualityChanges().getName() + + @pyqtProperty(str, notify = activeQualityGroupChanged) + def activeQualityOrQualityChangesId(self) -> str: + return self.activeQualityOrQualityChanges().getId() @pyqtProperty(bool, notify = activeQualityGroupChanged) def hasNotSupportedQuality(self) -> bool: diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index d7671d02c8..f328bb2b11 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -227,6 +227,7 @@ class UFPWriter(MeshWriter): }, "intent": machine_manager.activeIntentCategory, "quality": machine_manager.activeQualityOrQualityChangesName, + "quality_type": machine_manager.activeQualityOrQualityChangesId, } global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) From 6dc0a24311599bc327d8e75b1604d3a04a5046c2 Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Thu, 24 Nov 2022 15:33:39 +0100 Subject: [PATCH 138/185] Cache and genericize ID to Product table. part of CURA-9931 --- .../XmlMaterialProfile/XmlMaterialProfile.py | 13 ++++++++++--- plugins/XmlMaterialProfile/product_to_id.json | 17 +++++++---------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 527fa4ec13..524b7f099c 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -1125,21 +1125,28 @@ class XmlMaterialProfile(InstanceContainer): id_list = list(id_list) return id_list + __product_to_id_map: Optional[Dict[str, List[str]]] = None + @classmethod def getProductIdMap(cls) -> Dict[str, List[str]]: """Gets a mapping from product names in the XML files to their definition IDs. This loads the mapping from a file. """ + if cls.__product_to_id_map is not None: + return cls.__product_to_id_map plugin_path = cast(str, PluginRegistry.getInstance().getPluginPath("XmlMaterialProfile")) product_to_id_file = os.path.join(plugin_path, "product_to_id.json") with open(product_to_id_file, encoding = "utf-8") as f: - product_to_id_map = json.load(f) - product_to_id_map = {key: [value] for key, value in product_to_id_map.items()} + contents = "" + for line in f: + contents += line if "#" not in line else "".join([line.replace("#", str(n)) for n in range(1, 12)]) + cls.__product_to_id_map = json.loads(contents) + cls.__product_to_id_map = {key: [value] for key, value in cls.__product_to_id_map.items()} #This also loads "Ultimaker S5" -> "ultimaker_s5" even though that is not strictly necessary with the default to change spaces into underscores. #However it is not always loaded with that default; this mapping is also used in serialize() without that default. - return product_to_id_map + return cls.__product_to_id_map @staticmethod def _parseCompatibleValue(value: str): diff --git a/plugins/XmlMaterialProfile/product_to_id.json b/plugins/XmlMaterialProfile/product_to_id.json index 053c8d13f5..07e14f1276 100644 --- a/plugins/XmlMaterialProfile/product_to_id.json +++ b/plugins/XmlMaterialProfile/product_to_id.json @@ -1,14 +1,11 @@ { - "Ultimaker 2": "ultimaker2", - "Ultimaker 2 Extended": "ultimaker2_extended", - "Ultimaker 2 Extended+": "ultimaker2_extended_plus", - "Ultimaker 2 Go": "ultimaker2_go", - "Ultimaker 2+": "ultimaker2_plus", - "Ultimaker 2+ Connect": "ultimaker2_plus_connect", - "Ultimaker 3": "ultimaker3", - "Ultimaker 3 Extended": "ultimaker3_extended", - "Ultimaker S3": "ultimaker_s3", - "Ultimaker S5": "ultimaker_s5", + "Ultimaker #": "ultimaker#", + "Ultimaker # Extended": "ultimaker#_extended", + "Ultimaker # Extended+": "ultimaker#_extended_plus", + "Ultimaker # Go": "ultimaker#_go", + "Ultimaker #+": "ultimaker#_plus", + "Ultimaker #+ Connect": "ultimaker#_plus_connect", + "Ultimaker S#": "ultimaker_s#", "Ultimaker Original": "ultimaker_original", "Ultimaker Original+": "ultimaker_original_plus", "Ultimaker Original Dual Extrusion": "ultimaker_original_dual", From e8f6786e972898ed715ce63015c91bf86faafd94 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 24 Nov 2022 22:56:35 +0100 Subject: [PATCH 139/185] Revert "Add quality type to ufp files" This reverts commit 7e84082aff26195d82b8d3c9239dee863949c099. --- cura/Settings/MachineManager.py | 19 ++++++------------- plugins/UFPWriter/UFPWriter.py | 1 - 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index b5d43ba8a1..27d8fbbc78 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1764,21 +1764,14 @@ class MachineManager(QObject): global_stack = self._application.getGlobalContainerStack() return global_stack is None or global_stack.qualityChanges != empty_quality_changes_container - def activeQualityOrQualityChanges(self) -> GlobalStack: - global_container_stack = self._application.getGlobalContainerStack() - if not global_container_stack: - return empty_quality_container - if global_container_stack.qualityChanges != empty_quality_changes_container: - return global_container_stack.qualityChanges - return global_container_stack.quality - @pyqtProperty(str, notify = activeQualityGroupChanged) def activeQualityOrQualityChangesName(self) -> str: - return self.activeQualityOrQualityChanges().getName() - - @pyqtProperty(str, notify = activeQualityGroupChanged) - def activeQualityOrQualityChangesId(self) -> str: - return self.activeQualityOrQualityChanges().getId() + global_container_stack = self._application.getGlobalContainerStack() + if not global_container_stack: + return empty_quality_container.getName() + if global_container_stack.qualityChanges != empty_quality_changes_container: + return global_container_stack.qualityChanges.getName() + return global_container_stack.quality.getName() @pyqtProperty(bool, notify = activeQualityGroupChanged) def hasNotSupportedQuality(self) -> bool: diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index f328bb2b11..d7671d02c8 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -227,7 +227,6 @@ class UFPWriter(MeshWriter): }, "intent": machine_manager.activeIntentCategory, "quality": machine_manager.activeQualityOrQualityChangesName, - "quality_type": machine_manager.activeQualityOrQualityChangesId, } global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) From c2ad41e10eff1caa3bc2b17daa438cb1202ddf81 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 24 Nov 2022 23:02:13 +0100 Subject: [PATCH 140/185] Add quality type to ufp files Cura-9773 --- plugins/UFPWriter/UFPWriter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index d7671d02c8..3693352c1d 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -227,6 +227,7 @@ class UFPWriter(MeshWriter): }, "intent": machine_manager.activeIntentCategory, "quality": machine_manager.activeQualityOrQualityChangesName, + "quality_display_name": machine_manager.activeQualityDisplayNameMap, } global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) From 86ac4c4ab841c50222f339c3b293ecb810276a05 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 25 Nov 2022 14:09:12 +0100 Subject: [PATCH 141/185] Fix regex for list/dict match last item in list without comma at end. Add some custom ordering to the json. This is so that important values like "version" don't get pushed to the end of the json. --- .../formatters/def_json_formatter.py | 73 ++++++++++++++++--- 1 file changed, 64 insertions(+), 9 deletions(-) diff --git a/printer-linter/src/printerlinter/formatters/def_json_formatter.py b/printer-linter/src/printerlinter/formatters/def_json_formatter.py index ddeccacffd..c74f077249 100644 --- a/printer-linter/src/printerlinter/formatters/def_json_formatter.py +++ b/printer-linter/src/printerlinter/formatters/def_json_formatter.py @@ -1,29 +1,84 @@ import json import re +from collections import OrderedDict from pathlib import Path +from typing import Dict from .formatter import FileFormatter + +# Dictionary items with matching keys will be sorted as if they were the value +# Example: "version" will be sorted as if it was "0" +TOP_LEVEL_SORT_PRIORITY = { + "version": "0", + "name": "1", + "inherits": "3" +} + +METADATA_SORT_PRIORITY = { + "visible": "0", + "author": "1", + "manufacturer": "2", + "file_formats": "3", + "platform" : "4" +} + + class DefJsonFormatter(FileFormatter): def format(self, file: Path): - """ Format .def.json files according to the rules in settings """ - definition = json.loads(file.read_text()) - content = json.dumps(definition, indent=self._settings["format"].get("format-definition-indent", 4), - sort_keys=self._settings["format"].get("format-definition-sort-keys", True)) + """ Format .def.json files according to the rules in settings. + + You can assume that you will be running regex on standard formatted json files, because we load the json first and then + dump it to a string. This means you only have to write regex that works on the output of json.dump() + """ + + definition = json.loads(file.read_text(), object_pairs_hook=OrderedDict) + + if self._settings["format"].get("format-definition-sort-keys", True): + definition = self.order_keys(definition) + + content = json.dumps(definition, indent=self._settings["format"].get("format-definition-indent", 4)) if self._settings["format"].get("format-definition-bracket-newline", True): newline = re.compile(r"(\B\s+)(\"[\w\"]+)(\:\s\{)") content = newline.sub(r"\1\2:\1{", content) if self._settings["format"].get("format-definition-single-value-single-line", True): - single_value_dict = re.compile(r"(:)(\s*\n?.*\{\s+)(\".*)(\d*\s*\})(\s*)(,?)") - content = single_value_dict.sub(r"\1 { \3 }\6", content) + single_value_dict = re.compile(r"(:)(\s*\n?.*\{\s+)(\".*)(\d*\s*\})(.*\n,?)") + content = single_value_dict.sub(r"\1 { \3 }\5", content) - single_value_list = re.compile(r"(:)(\s*\n?.*\[\s+)(\".*)(\d*\s*\])(\s*)(,?)") - content = single_value_list.sub(r"\1 [ \3 ]\6", content) + single_value_list = re.compile(r"(:)(\s*\n?.*\[\s+)(\".*)(\d*\s*\])(.*\n,?)") + content = single_value_list.sub(r"\1 [ \3 ]\5", content) if self._settings["format"].get("format-definition-paired-coordinate-array", True): paired_coordinates = re.compile(r"(\[)\s+(-?\d*),\s*(-?\d*)\s*(\])") content = paired_coordinates.sub(r"\1 \2, \3 \4", content) - file.write_text(content) \ No newline at end of file + file.write_text(content) + + def order_keys(self, json_content: OrderedDict) -> OrderedDict: + """ Orders json keys lexicographically """ + # First order all keys (Recursive) lexicographically + json_content_text = json.dumps(json_content, sort_keys=True) + json_content = json.loads(json_content_text, object_pairs_hook=OrderedDict) + + # Do a custom ordered sort on the top level items in the json. This is so that keys like "version" appear at the top. + json_content = self.custom_sort_keys(json_content, TOP_LEVEL_SORT_PRIORITY) + + # Do a custom ordered sort on collections that are one level deep into the json + if "metadata" in json_content.keys(): + json_content["metadata"] = self.custom_sort_keys(json_content["metadata"], METADATA_SORT_PRIORITY) + + return json_content + + + def custom_sort_keys(self, ordered_dictionary: OrderedDict, sort_priority: Dict[str, str]) -> OrderedDict: + """ Orders keys in dictionary lexicographically, except for keys with matching strings in sort_priority. + + Keys in ordered_dictionary that match keys in sort_priority will sort based on the value in sort_priority. + + @param ordered_dictionary: A dictionary that will have it's top level keys sorted + @param sort_priority: A mapping from string keys to alternative strings to be used instead when sorting. + @return: A dictionary sorted by it's top level keys + """ + return OrderedDict(sorted(ordered_dictionary.items(), key=lambda x: sort_priority[x[0]] if str(x[0]) in sort_priority.keys() else str(x[0]))) From 00acc3f31a94b1f963dba9c076e1fc444d552cfa Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 25 Nov 2022 14:29:03 +0100 Subject: [PATCH 142/185] Update printer-linter/src/printerlinter/diagnostic.py Co-authored-by: Jelle Spijker --- printer-linter/src/printerlinter/diagnostic.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/printer-linter/src/printerlinter/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py index d5eb237c29..ac6e3b829e 100644 --- a/printer-linter/src/printerlinter/diagnostic.py +++ b/printer-linter/src/printerlinter/diagnostic.py @@ -22,7 +22,7 @@ class Diagnostic: self.level = level self.replacements = replacements - def toDict(self) -> dict: + def toDict(self) -> Dict[str, Any[str, int, List[Replacements]]]: return {"DiagnosticName": self.diagnostic_name, "DiagnosticMessage": { "Message": self.message, From f8590be6da6498001be68ae179c98f0fb6db05b3 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 25 Nov 2022 14:11:06 +0100 Subject: [PATCH 143/185] Remove elif after returns --- printer-linter/src/printerlinter/factory.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/printer-linter/src/printerlinter/factory.py b/printer-linter/src/printerlinter/factory.py index 7cff08df2c..d27f82244b 100644 --- a/printer-linter/src/printerlinter/factory.py +++ b/printer-linter/src/printerlinter/factory.py @@ -11,13 +11,16 @@ def getLinter(file: Path, settings: dict) -> Optional[Linter]: """ Returns a Linter depending on the file format """ if not file.exists(): return None - elif ".inst" in file.suffixes and ".cfg" in file.suffixes: + + if ".inst" in file.suffixes and ".cfg" in file.suffixes: return Profile(file, settings) - elif ".def" in file.suffixes and ".json" in file.suffixes: + + if ".def" in file.suffixes and ".json" in file.suffixes: if file.stem in ("fdmprinter.def", "fdmextruder.def"): return None return Definition(file, settings) - elif file.parent.stem == "meshes": + + if file.parent.stem == "meshes": return Meshes(file, settings) return None From 57ec36b7fef22e1ade94e1062fd98c66f84e8dc3 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Fri, 25 Nov 2022 14:37:22 +0100 Subject: [PATCH 144/185] Fix typing --- printer-linter/src/printerlinter/diagnostic.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/printer-linter/src/printerlinter/diagnostic.py b/printer-linter/src/printerlinter/diagnostic.py index ac6e3b829e..27f4fdd14a 100644 --- a/printer-linter/src/printerlinter/diagnostic.py +++ b/printer-linter/src/printerlinter/diagnostic.py @@ -1,5 +1,5 @@ from pathlib import Path -from typing import Optional, List +from typing import Optional, List, Dict, Any from .replacement import Replacement @@ -22,7 +22,7 @@ class Diagnostic: self.level = level self.replacements = replacements - def toDict(self) -> Dict[str, Any[str, int, List[Replacements]]]: + def toDict(self) -> Dict[str, Any]: return {"DiagnosticName": self.diagnostic_name, "DiagnosticMessage": { "Message": self.message, From 52ee149edc1960382595f71c30a8e98a37d93aa7 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 25 Nov 2022 16:09:55 +0100 Subject: [PATCH 145/185] Unify `activeQualityDisplayNameMap` string creation Generation quality display names in `CustomPrintSetup.qml` and `PrintSetupSelectorHeader.qml` were so similar that I decided to combine the logic. Cura-9773 --- cura/Settings/MachineManager.py | 66 ++++++++++++------- .../Custom/CustomPrintSetup.qml | 31 +-------- .../PrintSetupSelectorHeader.qml | 20 +----- 3 files changed, 46 insertions(+), 71 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 27d8fbbc78..6992ffc4e0 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1631,33 +1631,49 @@ class MachineManager(QObject): # Examples: # - "my_profile - Fine" (only based on a default quality, no intent involved) # - "my_profile - Engineering - Fine" (based on an intent) + @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) + def activeQualityDisplayNameStringParts(self) -> [str]: + result_map = self.activeQualityDisplayNameMap + string_parts = list() + + if result_map["custom_profile"] is not None: + string_parts.append(result_map["custom_profile"]) + + string_parts.append(result_map["profile"]) + + if result_map["intent_category"] is not "default": + string_parts.append(result_map["intent_name"]) + + if result_map["layer_height"]: + string_parts.append(f"""{result_map["layer_height"]}mm""") + + if result_map["is_experimental"]: + string_parts.append(catalog.i18nc("@label", "Experimental")) + + return string_parts + @pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged) - def activeQualityDisplayNameMap(self) -> Dict[str, str]: + def activeQualityDisplayNameMap(self) -> Dict[str, Any]: global_stack = self._application.getGlobalContainerStack() if global_stack is None: - return {"main": "", - "suffix": ""} + return { + "profile": "", + "intent_category": "", + "intent": "", + "custom_profile": None, + "is_experimental": False + } - display_name = global_stack.quality.getName() - - intent_category = self.activeIntentCategory - if intent_category != "default": - intent_display_name = IntentCategoryModel.translation(intent_category, - "name", - intent_category.title()) - display_name = "{intent_name} - {the_rest}".format(intent_name = intent_display_name, - the_rest = display_name) - - main_part = display_name - suffix_part = "" - - # Not a custom quality - if global_stack.qualityChanges != empty_quality_changes_container: - main_part = self.activeQualityOrQualityChangesName - suffix_part = display_name - - return {"main": main_part, - "suffix": suffix_part} + return { + "profile": global_stack.quality.getName(), + "intent_category": self.activeIntentCategory, + "intent_name": IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()), + "custom_profile": self.activeQualityOrQualityChangesName \ + if global_stack.qualityChanges is not empty_quality_changes_container \ + else None, + "layer_height": self.activeQualityLayerHeight if self.isActiveQualitySupported else None, + "is_experimental": self.isActiveQualityExperimental and self.isActiveQualitySupported, + } @pyqtSlot(str) def setIntentByCategory(self, intent_category: str) -> None: @@ -1776,7 +1792,9 @@ class MachineManager(QObject): @pyqtProperty(bool, notify = activeQualityGroupChanged) def hasNotSupportedQuality(self) -> bool: global_container_stack = self._application.getGlobalContainerStack() - return (not global_container_stack is None) and global_container_stack.quality == empty_quality_container and global_container_stack.qualityChanges == empty_quality_changes_container + return global_container_stack is not None\ + and global_container_stack.quality == empty_quality_container \ + and global_container_stack.qualityChanges == empty_quality_changes_container @pyqtProperty(bool, notify = activeQualityGroupChanged) def isActiveQualityCustom(self) -> bool: diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 554b663a9b..6385d60c6a 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -67,7 +67,7 @@ Item UM.Label { id: textLabel - text: Cura.MachineManager.activeQualityDisplayNameMap["main"] + text: Cura.MachineManager.activeQualityDisplayNameStringParts[0] Layout.margins: 0 Layout.maximumWidth: Math.floor(parent.width * 0.7) // Always leave >= 30% for the rest of the row. height: contentHeight @@ -77,7 +77,8 @@ Item UM.Label { - text: activeQualityDetailText() + text: Cura.MachineManager.activeQualityDisplayNameStringParts.slice(1).join(" - ") + color: UM.Theme.getColor("text_detail") Layout.margins: 0 Layout.fillWidth: true @@ -85,32 +86,6 @@ Item height: contentHeight elide: Text.ElideRight wrapMode: Text.NoWrap - function activeQualityDetailText() - { - var resultMap = Cura.MachineManager.activeQualityDisplayNameMap - var resultSuffix = resultMap["suffix"] - var result = "" - - if (Cura.MachineManager.isActiveQualityExperimental) - { - resultSuffix += " (Experimental)" - } - - if (Cura.MachineManager.isActiveQualitySupported) - { - if (Cura.MachineManager.activeQualityLayerHeight > 0) - { - if (resultSuffix) - { - result += " - " + resultSuffix - } - result += " - " - result += Cura.MachineManager.activeQualityLayerHeight + "mm" - } - } - - return result - } } } diff --git a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml index 41e913a2c1..8804e51bb2 100644 --- a/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml +++ b/resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml @@ -17,26 +17,8 @@ RowLayout { source: UM.Theme.getIcon("Sliders", "medium") iconSize: UM.Theme.getSize("button_icon").width - text: - { - if (Cura.MachineManager.activeStack) - { - var resultMap = Cura.MachineManager.activeQualityDisplayNameMap - var text = resultMap["main"] - if (resultMap["suffix"]) - { - text += " - " + resultMap["suffix"] - } - if (!Cura.MachineManager.hasNotSupportedQuality) - { - text += " - " + layerHeight.properties.value + "mm" - text += Cura.MachineManager.isActiveQualityExperimental ? " - " + catalog.i18nc("@label", "Experimental") : "" - } - return text - } - return "" - } + text: Cura.MachineManager.activeQualityDisplayNameStringParts.join(" - ") font: UM.Theme.getFont("medium") elide: Text.ElideMiddle wrapMode: Text.NoWrap From 1ae8f2da62b21bd11c45555959e9cf13f5562517 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 25 Nov 2022 16:12:44 +0100 Subject: [PATCH 146/185] Add quality display name with ufp files Cura-9773 --- plugins/UFPWriter/UFPWriter.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index d7671d02c8..3693352c1d 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -227,6 +227,7 @@ class UFPWriter(MeshWriter): }, "intent": machine_manager.activeIntentCategory, "quality": machine_manager.activeQualityOrQualityChangesName, + "quality_display_name": machine_manager.activeQualityDisplayNameMap, } global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) From 76564f7bc4a893cb585bdabeaae87690f226908c Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 25 Nov 2022 16:46:21 +0100 Subject: [PATCH 147/185] Add dash between main, and suffix part of quality display name Cura-9773 --- resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 6385d60c6a..0870e14d44 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -77,7 +77,7 @@ Item UM.Label { - text: Cura.MachineManager.activeQualityDisplayNameStringParts.slice(1).join(" - ") + text: ` - ${Cura.MachineManager.activeQualityDisplayNameStringParts.slice(1).join(" - ")}` color: UM.Theme.getColor("text_detail") Layout.margins: 0 From 4fa024cd317f4f8409790e29b7e440fca2bc01f6 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 25 Nov 2022 16:48:06 +0100 Subject: [PATCH 148/185] Group intent and quality Bit of an ugly hack. At later point in the code it is assumed the first element of the list is the main part and the remaining elements form the suffix. Intent and the profile form both the main part so these need to be grouped together. Cura-9773 --- cura/Settings/MachineManager.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 6992ffc4e0..657eeb6089 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1639,10 +1639,10 @@ class MachineManager(QObject): if result_map["custom_profile"] is not None: string_parts.append(result_map["custom_profile"]) - string_parts.append(result_map["profile"]) - if result_map["intent_category"] is not "default": - string_parts.append(result_map["intent_name"]) + string_parts.append(f"""{result_map["intent_name"]} - {result_map["profile"]}""") + else: + string_parts.append(result_map["profile"]) if result_map["layer_height"]: string_parts.append(f"""{result_map["layer_height"]}mm""") From 953bb38c9274ff7faccace1b7a3c1d0fbe787136 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 08:38:09 +0100 Subject: [PATCH 149/185] Update app name to UltiMaker Cura Contributes to CURA-9808 --- CuraVersion.py.jinja | 2 +- conanfile.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CuraVersion.py.jinja b/CuraVersion.py.jinja index 1c8ff0551c..da5b0ac0ce 100644 --- a/CuraVersion.py.jinja +++ b/CuraVersion.py.jinja @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura is released under the terms of the LGPLv3 or higher. CuraAppName = "{{ cura_app_name }}" diff --git a/conanfile.py b/conanfile.py index 16764213f3..46650bdc21 100644 --- a/conanfile.py +++ b/conanfile.py @@ -44,7 +44,7 @@ class CuraConan(ConanFile): "staging": "False", "devtools": False, "cloud_api_version": "1", - "display_name": "Ultimaker Cura", + "display_name": "UltiMaker Cura", "cura_debug_mode": False, # Not yet implemented "internal": False, } From ebd91623d0d7713c401f53ef91d46ad29ce6e947 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 08:41:04 +0100 Subject: [PATCH 150/185] Change company name in about dialog to UltiMaker Contributes to CURA-9808 --- resources/qml/Dialogs/AboutDialog.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/Dialogs/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml index e3fdbfa787..1eb9bd00ef 100644 --- a/resources/qml/Dialogs/AboutDialog.qml +++ b/resources/qml/Dialogs/AboutDialog.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 @@ -84,7 +84,7 @@ UM.Dialog width: parent.width //: About dialog application author note - text: catalog.i18nc("@info:credit","Cura is developed by Ultimaker B.V. in cooperation with the community.\nCura proudly uses the following open source projects:") + text: catalog.i18nc("@info:credit","Cura is developed by UltiMaker in cooperation with the community.\nCura proudly uses the following open source projects:") font: UM.Theme.getFont("system") wrapMode: Text.WordWrap anchors.top: description.bottom @@ -134,7 +134,7 @@ UM.Dialog Component.onCompleted: { //Do NOT add dependencies of our dependencies here, nor CI-dependencies! - //Ultimaker's own projects and forks. + //UltiMaker's own projects and forks. projectsModel.append({ name: "Cura", description: catalog.i18nc("@label Description for application component", "Graphical user interface"), license: "LGPLv3", url: "https://github.com/Ultimaker/Cura" }); projectsModel.append({ name: "Uranium", description: catalog.i18nc("@label Description for application component", "Application framework"), license: "LGPLv3", url: "https://github.com/Ultimaker/Uranium" }); projectsModel.append({ name: "CuraEngine", description: catalog.i18nc("@label Description for application component", "G-code generator"), license: "AGPLv3", url: "https://github.com/Ultimaker/CuraEngine" }); From 772cc0d57fe8a5011ce93a452d252cd976df397e Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 08:44:21 +0100 Subject: [PATCH 151/185] Update company name in conanfile Contributes to CURA-9808 --- conanfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conanfile.py b/conanfile.py index 46650bdc21..d890885794 100644 --- a/conanfile.py +++ b/conanfile.py @@ -16,7 +16,7 @@ required_conan_version = ">=1.52.0" class CuraConan(ConanFile): name = "cura" license = "LGPL-3.0" - author = "Ultimaker B.V." + author = "UltiMaker" url = "https://github.com/Ultimaker/cura" description = "3D printer / slicing GUI built on top of the Uranium framework" topics = ("conan", "python", "pyqt5", "qt", "qml", "3d-printing", "slicer") From 696c0f8547d518da1aa009a98384adf0de890cec Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 09:05:21 +0100 Subject: [PATCH 152/185] Update company name to UltiMaker Contributes to CURA-9808 --- cura/CrashHandler.py | 6 +++--- plugins/CuraEngineBackend/CuraEngineBackend.py | 4 ++-- plugins/Marketplace/CloudSync/CloudPackageChecker.py | 4 ++-- plugins/Marketplace/CloudSync/DownloadPresenter.py | 4 ++-- plugins/Marketplace/resources/qml/ManagedPackages.qml | 5 +++-- plugins/Marketplace/resources/qml/Materials.qml | 4 ++-- plugins/Marketplace/resources/qml/Plugins.qml | 4 ++-- plugins/Marketplace/resources/qml/VerifiedIcon.qml | 8 ++++---- plugins/SliceInfoPlugin/MoreInfoWindow.qml | 4 ++-- plugins/UFPReader/__init__.py | 6 +++--- plugins/UFPWriter/__init__.py | 6 +++--- .../resources/qml/MonitorPrinterCard.qml | 4 ++-- plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml | 4 ++-- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 4 ++-- .../src/Cloud/CloudOutputDeviceManager.py | 4 ++-- .../src/Messages/RemovedPrintersMessage.py | 5 +++-- .../UMOUpgradeSelectionMachineAction.qml | 4 ++-- resources/qml/Account/GeneralOperations.qml | 8 ++++---- resources/qml/Account/UserOperations.qml | 4 ++-- resources/qml/Actions.qml | 4 ++-- resources/qml/WelcomePages/AddPrinterByIpContent.qml | 6 +++--- resources/qml/WelcomePages/AddThirdPartyPrinter.qml | 4 ++-- .../qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml | 4 ++-- resources/qml/WelcomePages/AddUltimakerPrinter.qml | 8 ++++---- resources/qml/WelcomePages/CloudContent.qml | 6 +++--- resources/qml/WelcomePages/DataCollectionsContent.qml | 6 +++--- resources/qml/WelcomePages/WelcomeContent.qml | 6 +++--- 27 files changed, 69 insertions(+), 67 deletions(-) diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index 541a270058..af27193023 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import platform @@ -110,7 +110,7 @@ class CrashHandler: layout = QVBoxLayout(dialog) label = QLabel() - label.setText(catalog.i18nc("@label crash message", """

    Oops, Ultimaker Cura has encountered something that doesn't seem right.

    + label.setText(catalog.i18nc("@label crash message", """

    Oops, UltiMaker Cura has encountered something that doesn't seem right.

    We encountered an unrecoverable error during start up. It was possibly caused by some incorrect configuration files. We suggest to backup and reset your configuration.

    Backups can be found in the configuration folder.

    Please send us this Crash Report to fix the problem.

    @@ -119,7 +119,7 @@ class CrashHandler: layout.addWidget(label) # "send report" check box and show details - self._send_report_checkbox = QCheckBox(catalog.i18nc("@action:button", "Send crash report to Ultimaker"), dialog) + self._send_report_checkbox = QCheckBox(catalog.i18nc("@action:button", "Send crash report to UltiMaker"), dialog) self._send_report_checkbox.setChecked(True) show_details_button = QPushButton(catalog.i18nc("@action:button", "Show detailed crash report"), dialog) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index db27f8a6a3..4c6258880d 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021-2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import argparse #To run the engine in debug mode if the front-end is in debug mode. @@ -166,7 +166,7 @@ class CuraEngineBackend(QObject, Backend): self._slicing_error_message.addAction( action_id = "report_bug", name = catalog.i18nc("@message:button", "Report a bug"), - description = catalog.i18nc("@message:description", "Report a bug on Ultimaker Cura's issue tracker."), + description = catalog.i18nc("@message:description", "Report a bug on UltiMaker Cura's issue tracker."), icon = "[no_icon]" ) self._slicing_error_message.actionTriggered.connect(self._reportBackendError) diff --git a/plugins/Marketplace/CloudSync/CloudPackageChecker.py b/plugins/Marketplace/CloudSync/CloudPackageChecker.py index 53087e0502..a609052625 100644 --- a/plugins/Marketplace/CloudSync/CloudPackageChecker.py +++ b/plugins/Marketplace/CloudSync/CloudPackageChecker.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import json @@ -142,7 +142,7 @@ class CloudPackageChecker(QObject): sync_message = Message(self._i18n_catalog.i18nc( "@info:generic", "Do you want to sync material and software packages with your account?"), - title = self._i18n_catalog.i18nc("@info:title", "Changes detected from your Ultimaker account", )) + title = self._i18n_catalog.i18nc("@info:title", "Changes detected from your UltiMaker account", )) sync_message.addAction("sync", name = self._i18n_catalog.i18nc("@action:button", "Sync"), icon = "", diff --git a/plugins/Marketplace/CloudSync/DownloadPresenter.py b/plugins/Marketplace/CloudSync/DownloadPresenter.py index 8325c27eb7..82755b3029 100644 --- a/plugins/Marketplace/CloudSync/DownloadPresenter.py +++ b/plugins/Marketplace/CloudSync/DownloadPresenter.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import tempfile @@ -92,7 +92,7 @@ class DownloadPresenter: lifetime = 0, use_inactivity_timer = False, progress = 0.0, - title = i18n_catalog.i18nc("@info:title", "Changes detected from your Ultimaker account")) + title = i18n_catalog.i18nc("@info:title", "Changes detected from your UltiMaker account")) def _onFinished(self, package_id: str, reply: QNetworkReply) -> None: self._progress[package_id]["received"] = self._progress[package_id]["total"] diff --git a/plugins/Marketplace/resources/qml/ManagedPackages.qml b/plugins/Marketplace/resources/qml/ManagedPackages.qml index 9358a04f07..6304705aa6 100644 --- a/plugins/Marketplace/resources/qml/ManagedPackages.qml +++ b/plugins/Marketplace/resources/qml/ManagedPackages.qml @@ -1,5 +1,6 @@ -// Copyright (c) 2021 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. + import QtQuick 2.15 import QtQuick.Controls 2.15 import QtQuick.Layouts 1.15 @@ -12,7 +13,7 @@ Packages bannerVisible: UM.Preferences.getValue("cura/market_place_show_manage_packages_banner"); bannerIcon: UM.Theme.getIcon("ArrowDoubleCircleRight") - bannerText: catalog.i18nc("@text", "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly.") + bannerText: catalog.i18nc("@text", "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly.") bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/4411125921426/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-manage" onRemoveBanner: function() { UM.Preferences.setValue("cura/market_place_show_manage_packages_banner", false); diff --git a/plugins/Marketplace/resources/qml/Materials.qml b/plugins/Marketplace/resources/qml/Materials.qml index c10a937d67..27cb75c332 100644 --- a/plugins/Marketplace/resources/qml/Materials.qml +++ b/plugins/Marketplace/resources/qml/Materials.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2021 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import UM 1.4 as UM @@ -9,7 +9,7 @@ Packages bannerVisible: UM.Preferences.getValue("cura/market_place_show_material_banner") bannerIcon: UM.Theme.getIcon("Spool") - bannerText: catalog.i18nc("@text", "Select and install material profiles optimised for your Ultimaker 3D printers.") + bannerText: catalog.i18nc("@text", "Select and install material profiles optimised for your UltiMaker 3D printers.") bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/360011968360/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-materials" onRemoveBanner: function() { UM.Preferences.setValue("cura/market_place_show_material_banner", false); diff --git a/plugins/Marketplace/resources/qml/Plugins.qml b/plugins/Marketplace/resources/qml/Plugins.qml index 739e0c01a7..68c66a6013 100644 --- a/plugins/Marketplace/resources/qml/Plugins.qml +++ b/plugins/Marketplace/resources/qml/Plugins.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2021 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import UM 1.4 as UM @@ -9,7 +9,7 @@ Packages bannerVisible: UM.Preferences.getValue("cura/market_place_show_plugin_banner") bannerIcon: UM.Theme.getIcon("Shop") - bannerText: catalog.i18nc("@text", "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users.") + bannerText: catalog.i18nc("@text", "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users.") bannerReadMoreUrl: "https://support.ultimaker.com/hc/en-us/articles/360011968360/?utm_source=cura&utm_medium=software&utm_campaign=marketplace-learn-plugins" onRemoveBanner: function() { UM.Preferences.setValue("cura/market_place_show_plugin_banner", false) diff --git a/plugins/Marketplace/resources/qml/VerifiedIcon.qml b/plugins/Marketplace/resources/qml/VerifiedIcon.qml index e701c5a91b..e439d99860 100644 --- a/plugins/Marketplace/resources/qml/VerifiedIcon.qml +++ b/plugins/Marketplace/resources/qml/VerifiedIcon.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2021 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.15 @@ -18,9 +18,9 @@ Control { switch(packageData.packageType) { - case "plugin": return catalog.i18nc("@info", "Ultimaker Verified Plug-in"); - case "material": return catalog.i18nc("@info", "Ultimaker Certified Material"); - default: return catalog.i18nc("@info", "Ultimaker Verified Package"); + case "plugin": return catalog.i18nc("@info", "UltiMaker Verified Plug-in"); + case "material": return catalog.i18nc("@info", "UltiMaker Certified Material"); + default: return catalog.i18nc("@info", "UltiMaker Verified Package"); } } visible: parent.hovered diff --git a/plugins/SliceInfoPlugin/MoreInfoWindow.qml b/plugins/SliceInfoPlugin/MoreInfoWindow.qml index 310fa29c17..9a56823b40 100644 --- a/plugins/SliceInfoPlugin/MoreInfoWindow.qml +++ b/plugins/SliceInfoPlugin/MoreInfoWindow.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -70,7 +70,7 @@ Window left: parent.left right: parent.right } - text: catalog.i18nc("@text:window", "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:") + text: catalog.i18nc("@text:window", "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:") wrapMode: Text.WordWrap } diff --git a/plugins/UFPReader/__init__.py b/plugins/UFPReader/__init__.py index cfea4b9882..33bdc14dae 100644 --- a/plugins/UFPReader/__init__.py +++ b/plugins/UFPReader/__init__.py @@ -1,5 +1,5 @@ -#Copyright (c) 2019 Ultimaker B.V. -#Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. import sys @@ -19,7 +19,7 @@ def getMetaData(): { "mime_type": "application/x-ufp", "extension": "ufp", - "description": i18n_catalog.i18nc("@item:inlistbox", "Ultimaker Format Package") + "description": i18n_catalog.i18nc("@item:inlistbox", "UltiMaker Format Package") } ] } diff --git a/plugins/UFPWriter/__init__.py b/plugins/UFPWriter/__init__.py index 9db6b042f8..48ffee327c 100644 --- a/plugins/UFPWriter/__init__.py +++ b/plugins/UFPWriter/__init__.py @@ -1,5 +1,5 @@ -#Copyright (c) 2018 Ultimaker B.V. -#Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker B.V. +# Cura is released under the terms of the LGPLv3 or higher. import sys @@ -25,7 +25,7 @@ def getMetaData(): "mime_type": "application/x-ufp", "mode": MeshWriter.OutputMode.BinaryMode, "extension": "ufp", - "description": i18n_catalog.i18nc("@item:inlistbox", "Ultimaker Format Package") + "description": i18n_catalog.i18nc("@item:inlistbox", "UltiMaker Format Package") } ] } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 9d6ffba17b..3340bc6f46 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.3 @@ -284,7 +284,7 @@ Item MonitorInfoBlurb { id: cameraDisabledInfo - text: catalog.i18nc("@info", "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura." + + text: catalog.i18nc("@info", "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." + " Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam.") target: cameraButton } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 33e8adf256..816bc8f8e8 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.15 @@ -114,7 +114,7 @@ Component UM.Label { anchors.horizontalCenter: parent.horizontalCenter - text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory") + text: catalog.i18nc("@info", "Monitor your printers from everywhere using UltiMaker Digital Factory") font: UM.Theme.getFont("medium") width: sendToFactoryImage.width wrapMode: Text.WordWrap diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 9daf563460..d2363217b8 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from time import time @@ -275,7 +275,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): message.addAction("monitor print", name=I18N_CATALOG.i18nc("@action:button", "Monitor print"), icon="", - description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in Ultimaker Digital Factory"), + description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in UltiMaker Digital Factory"), button_align=message.ActionButtonAlignment.ALIGN_RIGHT) df_url = f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent" message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index abfe863749..346a55bf95 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import os @@ -419,7 +419,7 @@ class CloudOutputDeviceManager: machine.setMetaDataEntry(self.META_HOST_GUID, device.clusterData.host_guid) machine.setMetaDataEntry("group_name", device.name) machine.setMetaDataEntry("group_size", device.clusterSize) - digital_factory_string = self.i18n_catalog.i18nc("info:name", "Ultimaker Digital Factory") + digital_factory_string = self.i18n_catalog.i18nc("info:name", "UltiMaker Digital Factory") digital_factory_link = f"{digital_factory_string}" removal_warning_string = self.i18n_catalog.i18nc("@message {printer_name} is replaced with the name of the printer", "{printer_name} will be removed until the next account sync.").format(printer_name = device.name) \ diff --git a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py index caed6ddf91..4323c4ba21 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py @@ -1,5 +1,6 @@ -# Copyright (c) 2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura is released under the terms of the LGPLv3 or higher. + from UM import i18nCatalog from UM.Message import Message from cura.CuraApplication import CuraApplication @@ -19,7 +20,7 @@ class RemovedPrintersMessage(Message): ) message_text += "
      {}

    ".format(device_names) - digital_factory_string = self.i18n_catalog.i18nc("info:name", "Ultimaker Digital Factory") + digital_factory_string = self.i18n_catalog.i18nc("info:name", "UltiMaker Digital Factory") website_link = f"{digital_factory_string}." diff --git a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml index 8136e63a47..abd3462fc6 100644 --- a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -27,7 +27,7 @@ Cura.MachineAction anchors.topMargin: UM.Theme.getSize("default_margin").height width: parent.width wrapMode: Text.WordWrap - text: catalog.i18nc("@label","Please select any upgrades made to this Ultimaker Original") + text: catalog.i18nc("@label","Please select any upgrades made to this UltiMaker Original") font: UM.Theme.getFont("medium") } diff --git a/resources/qml/Account/GeneralOperations.qml b/resources/qml/Account/GeneralOperations.qml index da62124f3f..bdc2a37aca 100644 --- a/resources/qml/Account/GeneralOperations.qml +++ b/resources/qml/Account/GeneralOperations.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -16,7 +16,7 @@ Column { id: title anchors.horizontalCenter: parent.horizontalCenter - text: catalog.i18nc("@label", "Sign in to the Ultimaker platform") + text: catalog.i18nc("@label", "Sign in to the UltiMaker platform") font: UM.Theme.getFont("large_bold") } @@ -36,7 +36,7 @@ Column id: generalInformationPoints anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignLeft - text: catalog.i18nc("@text", "- Add material profiles and plug-ins from the Marketplace\n- Back-up and sync your material profiles and plug-ins\n- Share ideas and get help from 48,000+ users in the Ultimaker community") + text: catalog.i18nc("@text", "- Add material profiles and plug-ins from the Marketplace\n- Back-up and sync your material profiles and plug-ins\n- Share ideas and get help from 48,000+ users in the UltiMaker community") lineHeight: 1.4 wrapMode: Text.NoWrap } @@ -55,7 +55,7 @@ Column { anchors.horizontalCenter: parent.horizontalCenter height: UM.Theme.getSize("account_button").height - text: catalog.i18nc("@button", "Create a free Ultimaker account") + text: catalog.i18nc("@button", "Create a free UltiMaker account") onClicked: Qt.openUrlExternally("https://ultimaker.com/app/ultimaker-cura-account-sign-up?utm_source=cura&utm_medium=software&utm_campaign=menu-signup") } } diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index 9e5d082738..144e9a1b65 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2020 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -104,7 +104,7 @@ Column width: parent.width height: UM.Theme.getSize("account_button").height - text: catalog.i18nc("@button", "Ultimaker Account") + text: catalog.i18nc("@button", "UltiMaker Account") onClicked: Qt.openUrlExternally(CuraApplication.ultimakerCloudAccountRootUrl + "?utm_source=cura&utm_medium=software&utm_campaign=menu-visit-account") fixedWidthMode: false } diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index 00089dd85b..be94c53bef 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. pragma Singleton @@ -214,7 +214,7 @@ Item Action { id: marketplaceMaterialsAction - text: catalog.i18nc("@action:inmenu Marketplace is a brand name of Ultimaker's, so don't translate.", "Add more materials from Marketplace") + text: catalog.i18nc("@action:inmenu Marketplace is a brand name of UltiMaker's, so don't translate.", "Add more materials from Marketplace") } Action diff --git a/resources/qml/WelcomePages/AddPrinterByIpContent.qml b/resources/qml/WelcomePages/AddPrinterByIpContent.qml index 90fdd2be91..a91cef0ef7 100644 --- a/resources/qml/WelcomePages/AddPrinterByIpContent.qml +++ b/resources/qml/WelcomePages/AddPrinterByIpContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.15 @@ -193,12 +193,12 @@ Item if (addPrinterByIpScreen.hasRequestFinished) { return catalog.i18nc("@label", "Could not connect to device.") + "

    " - + catalog.i18nc("@label", "Can't connect to your Ultimaker printer?") + ""; + + catalog.i18nc("@label", "Can't connect to your UltiMaker printer?") + ""; } else { return catalog.i18nc("@label", "The printer at this address has not responded yet.") + "

    " - + catalog.i18nc("@label", "Can't connect to your Ultimaker printer?") + ""; + + catalog.i18nc("@label", "Can't connect to your UltiMaker printer?") + ""; } } onLinkActivated: Qt.openUrlExternally(link) diff --git a/resources/qml/WelcomePages/AddThirdPartyPrinter.qml b/resources/qml/WelcomePages/AddThirdPartyPrinter.qml index f25cdccbf1..598209760a 100644 --- a/resources/qml/WelcomePages/AddThirdPartyPrinter.qml +++ b/resources/qml/WelcomePages/AddThirdPartyPrinter.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -99,7 +99,7 @@ Item id: backButton anchors.left: parent.left anchors.bottom: parent.bottom - text: catalog.i18nc("@button", "Add Ultimaker printer via Digital Factory") + text: catalog.i18nc("@button", "Add UltiMaker printer via Digital Factory") onClicked: goToUltimakerPrinter() } diff --git a/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml b/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml index c76979fecf..4b7a07881a 100644 --- a/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml +++ b/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -52,7 +52,7 @@ Control id: ultimakerPrinterCard Layout.alignment: Qt.AlignBottom onClicked: goToUltimakerPrinter - text: catalog.i18nc("@button", "Ultimaker printer") + text: catalog.i18nc("@button", "UltiMaker printer") imageSource: UM.Theme.getImage("ultimaker_printer") } diff --git a/resources/qml/WelcomePages/AddUltimakerPrinter.qml b/resources/qml/WelcomePages/AddUltimakerPrinter.qml index d3e29dca8a..54d1b55483 100644 --- a/resources/qml/WelcomePages/AddUltimakerPrinter.qml +++ b/resources/qml/WelcomePages/AddUltimakerPrinter.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -30,7 +30,7 @@ Control UM.Label { Layout.fillWidth: true - text: catalog.i18nc("@label", "New Ultimaker printers can be connected to Digital Factory and monitored remotely.") + text: catalog.i18nc("@label", "New UltiMaker printers can be connected to Digital Factory and monitored remotely.") wrapMode: Text.WordWrap } @@ -67,7 +67,7 @@ Control Layout.alignment: Qt.AlignTop wrapMode: Text.WordWrap font: UM.Theme.getFont("default_bold") - text: catalog.i18nc("@label", "If you are trying to add a new Ultimaker printer to Cura") + text: catalog.i18nc("@label", "If you are trying to add a new UltiMaker printer to Cura") } ColumnLayout @@ -77,7 +77,7 @@ Control Repeater { model: [ - catalog.i18nc("@info", "Sign in into Ultimaker Digilal Factory"), + catalog.i18nc("@info", "Sign in into UltiMaker Digilal Factory"), catalog.i18nc("@info", "Follow the procedure to add a new printer"), catalog.i18nc("@info", "Your new printer will automatically appear in Cura"), ] diff --git a/resources/qml/WelcomePages/CloudContent.qml b/resources/qml/WelcomePages/CloudContent.qml index cf830a9b36..7d9dd79142 100644 --- a/resources/qml/WelcomePages/CloudContent.qml +++ b/resources/qml/WelcomePages/CloudContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -61,7 +61,7 @@ Item id: titleLabel anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter - text: catalog.i18nc("@label", "Sign in to the Ultimaker platform") + text: catalog.i18nc("@label", "Sign in to the UltiMaker platform") color: UM.Theme.getColor("primary_button") font: UM.Theme.getFont("huge") } @@ -172,7 +172,7 @@ Item id: communityTextLabel anchors.horizontalCenter: communityColumn.horizontalCenter width: parent.width - text: catalog.i18nc("@text", "Share ideas and get help from 48,000+ users in the Ultimaker Community") + text: catalog.i18nc("@text", "Share ideas and get help from 48,000+ users in the UltiMaker Community") horizontalAlignment: Text.AlignHCenter } } diff --git a/resources/qml/WelcomePages/DataCollectionsContent.qml b/resources/qml/WelcomePages/DataCollectionsContent.qml index ece437890e..16e6e07899 100644 --- a/resources/qml/WelcomePages/DataCollectionsContent.qml +++ b/resources/qml/WelcomePages/DataCollectionsContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -21,7 +21,7 @@ Item anchors.top: parent.top anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter - text: catalog.i18nc("@label", "Help us to improve Ultimaker Cura") + text: catalog.i18nc("@label", "Help us to improve UltiMaker Cura") color: UM.Theme.getColor("primary_button") font: UM.Theme.getFont("huge") } @@ -53,7 +53,7 @@ Item width: parent.width anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter - text: catalog.i18nc("@text", "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:") + text: catalog.i18nc("@text", "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:") wrapMode: Text.WordWrap font: UM.Theme.getFont("medium") } diff --git a/resources/qml/WelcomePages/WelcomeContent.qml b/resources/qml/WelcomePages/WelcomeContent.qml index 4123535cc9..d3a3404c28 100644 --- a/resources/qml/WelcomePages/WelcomeContent.qml +++ b/resources/qml/WelcomePages/WelcomeContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 @@ -53,7 +53,7 @@ Item id: titleLabel anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter - text: catalog.i18nc("@label", "Welcome to Ultimaker Cura") + text: catalog.i18nc("@label", "Welcome to UltiMaker Cura") color: UM.Theme.getColor("primary_button") font: UM.Theme.getFont("huge_bold") } @@ -64,7 +64,7 @@ Item anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter width: titleLabel.width + 2 * UM.Theme.getSize("thick_margin").width - text: catalog.i18nc("@text", "Please follow these steps to set up Ultimaker Cura. This will only take a few moments.") + text: catalog.i18nc("@text", "Please follow these steps to set up UltiMaker Cura. This will only take a few moments.") font: UM.Theme.getFont("medium") } From e1b9630ca4385e20dc84b3af8513d26b604a8cf2 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 09:12:20 +0100 Subject: [PATCH 153/185] Update company name to UltiMaker in po files Contributes to CURA-9808 --- resources/i18n/cs_CZ/cura.po | 254 +++++++++++------------ resources/i18n/de_DE/cura.po | 166 +++++++-------- resources/i18n/es_ES/cura.po | 166 +++++++-------- resources/i18n/fi_FI/cura.po | 182 ++++++++--------- resources/i18n/fr_FR/cura.po | 156 +++++++------- resources/i18n/hu_HU/cura.po | 168 +++++++-------- resources/i18n/it_IT/cura.po | 166 +++++++-------- resources/i18n/ja_JP/cura.po | 168 +++++++-------- resources/i18n/ko_KR/cura.po | 170 ++++++++-------- resources/i18n/nl_NL/cura.po | 166 +++++++-------- resources/i18n/pl_PL/cura.po | 284 +++++++++++++------------- resources/i18n/pt_BR/cura.po | 384 +++++++++++++++++------------------ resources/i18n/pt_PT/cura.po | 166 +++++++-------- resources/i18n/ru_RU/cura.po | 166 +++++++-------- resources/i18n/tr_TR/cura.po | 168 +++++++-------- resources/i18n/zh_CN/cura.po | 372 ++++++++++++++++----------------- resources/i18n/zh_TW/cura.po | 350 +++++++++++++++---------------- 17 files changed, 1826 insertions(+), 1826 deletions(-) diff --git a/resources/i18n/cs_CZ/cura.po b/resources/i18n/cs_CZ/cura.po index 4ab386a20a..76b4af0c05 100644 --- a/resources/i18n/cs_CZ/cura.po +++ b/resources/i18n/cs_CZ/cura.po @@ -424,8 +424,8 @@ msgstr "Nepodařilo se mi spustit nový proces přihlášení. Zkontrolujte, zda #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Nelze se dostat na server účtu Ultimaker." +msgid "Unable to reach the UltiMaker account server." +msgstr "Nelze se dostat na server účtu UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -701,8 +701,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Poslat záznam o pádu do Ultimakeru" +msgid "Send crash report to UltiMaker" +msgstr "Poslat záznam o pádu do UltiMakeru" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -902,7 +902,7 @@ msgstr "Chyba sítě" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Z vašeho Ultimaker účtu byla detekována nová tiskárna" msgstr[1] "Z vašeho Ultimaker účtu byly detekovány nové tiskárny" @@ -1027,8 +1027,8 @@ msgstr[2] "Tyto tiskárny nejsou napojeny na Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1056,8 +1056,8 @@ msgstr "Odstranit tiskárnu" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" -msgid "You are attempting to connect to a printer that is not running Ultimaker Connect. Please update the printer to the latest firmware." -msgstr "Pokoušíte se připojit k tiskárně, na které není spuštěna aplikace Ultimaker Connect. Aktualizujte tiskárnu na nejnovější firmware." +msgid "You are attempting to connect to a printer that is not running UltiMaker Connect. Please update the printer to the latest firmware." +msgstr "Pokoušíte se připojit k tiskárně, na které není spuštěna aplikace UltiMaker Connect. Aktualizujte tiskárnu na nejnovější firmware." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1180,8 +1180,8 @@ msgstr "Sledovat tisk" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Sledujte tisk v Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Sledujte tisk v UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1289,8 +1289,8 @@ msgstr "Nemohu zapsat do UFP souboru:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Balíček ve formátu Ultimaker" +msgid "UltiMaker Format Package" +msgstr "Balíček ve formátu UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1411,8 +1411,8 @@ msgstr "Chcete synchronizovat materiálové a softwarové balíčky s vaším ú #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Zjištěny změny z vašeho účtu Ultimaker" +msgid "Changes detected from your UltiMaker account" +msgstr "Zjištěny změny z vašeho účtu UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1572,8 +1572,8 @@ msgstr "Nahlásit chybu" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Nahlásit chybu v Ultimaker Cura issue trackeru." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Nahlásit chybu v UltiMaker Cura issue trackeru." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1702,8 +1702,8 @@ msgstr "Soubor projektu {0} je poškozený: {1}!" -msgid "Project file {0} is made using profiles that are unknown to this version of Ultimaker Cura." -msgstr "Soubor projektu {0} je vytvořený profily, které jsou této verzi Ultimaker Cura neznámé." +msgid "Project file {0} is made using profiles that are unknown to this version of UltiMaker Cura." +msgstr "Soubor projektu {0} je vytvořený profily, které jsou této verzi UltiMaker Cura neznámé." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2348,8 +2348,8 @@ msgstr "Aktualizujte firmware tiskárny a spravujte frontu vzdáleně." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Vstup z webové kamery nemůže být pro cloudové tiskárny zobrazen v Ultimaker Cura. Klikněte na \"Spravovat tiskárnu\", abyste navštívili Ultimaker Digital Factory a zobrazili tuto webkameru." +msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Vstup z webové kamery nemůže být pro cloudové tiskárny zobrazen v UltiMaker Cura. Klikněte na \"Spravovat tiskárnu\", abyste navštívili Ultimaker Digital Factory a zobrazili tuto webkameru." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2415,8 +2415,8 @@ msgstr "První dostupný" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Sledujte své tiskárny odkudkoliv pomocí Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Sledujte své tiskárny odkudkoliv pomocí UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2714,8 +2714,8 @@ msgstr "Další informace o anonymním shromažďování údajů" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" -msgid "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura shromažďuje anonymní data za účelem zlepšení kvality tisku a uživatelského komfortu. Níže uvádíme příklad všech sdílených dat:" +msgid "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" +msgstr "UltiMaker Cura shromažďuje anonymní data za účelem zlepšení kvality tisku a uživatelského komfortu. Níže uvádíme příklad všech sdílených dat:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2739,8 +2739,8 @@ msgstr "Uložit projekt Cura" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Vyberte prosím všechny upgrady provedené v tomto originálu Ultimaker" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Vyberte prosím všechny upgrady provedené v tomto originálu UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2835,8 +2835,8 @@ msgstr "Nainstalovat moduly" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" -msgid "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users." -msgstr "Urychlete váš postup práce a přizpůsobte si zážitek s Ultimaker Cura pomocí modulů, kterými přispěla naše úžasná komunita uživatelů." +msgid "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users." +msgstr "Urychlete váš postup práce a přizpůsobte si zážitek s UltiMaker Cura pomocí modulů, kterými přispěla naše úžasná komunita uživatelů." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -2894,8 +2894,8 @@ msgstr "Instalovat materiály" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" -msgid "Select and install material profiles optimised for your Ultimaker 3D printers." -msgstr "Vyberte a nainstalujte materiálové profily optimalizované pro vaše 3D tiskárny Ultimaker." +msgid "Select and install material profiles optimised for your UltiMaker 3D printers." +msgstr "Vyberte a nainstalujte materiálové profily optimalizované pro vaše 3D tiskárny UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3016,18 +3016,18 @@ msgstr "Načíst více" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Modul ověřený společností Ultimaker" +msgid "UltiMaker Verified Plug-in" +msgstr "Modul ověřený společností UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Materiál certifikovaný společností Ultimaker" +msgid "UltiMaker Certified Material" +msgstr "Materiál certifikovaný společností UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Balíček ověřený společností Ultimaker" +msgid "UltiMaker Verified Package" +msgstr "Balíček ověřený společností UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3036,8 +3036,8 @@ msgstr "Spravovat balíčky" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" -msgid "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." -msgstr "Zde můžete spravovat své Ultimaker Cura moduly a materiály. Udržujte své moduly aktuální a pravidelně zálohujte své nastavení." +msgid "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." +msgstr "Zde můžete spravovat své UltiMaker Cura moduly a materiály. Udržujte své moduly aktuální a pravidelně zálohujte své nastavení." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" @@ -4308,8 +4308,8 @@ msgstr "Soukromí" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "Měla by být anonymní data o vašem tisku zaslána společnosti Ultimaker? Upozorňujeme, že nejsou odesílány ani ukládány žádné modely, adresy IP ani jiné osobní údaje." +msgid "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "Měla by být anonymní data o vašem tisku zaslána společnosti UltiMaker? Upozorňujeme, že nejsou odesílány ani ukládány žádné modely, adresy IP ani jiné osobní údaje." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4623,8 +4623,8 @@ msgstr "Podpora při problémech" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Přihlásit se do platformy Ultimaker" +msgid "Sign in to the UltiMaker platform" +msgstr "Přihlásit se do platformy UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4638,8 +4638,8 @@ msgstr "Zálohovat a synchronizovat nastavení materiálů a moduly" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Sdílejte nápady a získejte pomoc od více než 48 0000 uživatelů v Ultimaker komunitě" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Sdílejte nápady a získejte pomoc od více než 48 0000 uživatelů v UltiMaker komunitě" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4648,18 +4648,18 @@ msgstr "Přeskočit" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Vytvořit účet Ultimaker zdarma" +msgid "Create a free UltiMaker Account" +msgstr "Vytvořit účet UltiMaker zdarma" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Pomožte nám zlepšovat Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "Pomožte nám zlepšovat UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" -msgid "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:" -msgstr "Ultimaker Cura shromažďuje anonymní data za účelem zlepšení kvality tisku a uživatelského komfortu, včetně:" +msgid "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:" +msgstr "UltiMaker Cura shromažďuje anonymní data za účelem zlepšení kvality tisku a uživatelského komfortu, včetně:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4683,8 +4683,8 @@ msgstr "Nastavení tisku" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" -msgid "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Data shromážděná společností Ultimaker Cura nebudou obsahovat žádné osobní údaje." +msgid "Data collected by UltiMaker Cura will not contain any personal information." +msgstr "Data shromážděná společností UltiMaker Cura nebudou obsahovat žádné osobní údaje." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4754,8 +4754,8 @@ msgstr "Nelze se připojit k zařízení." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Nemůžete se připojit k Vaší tiskárně Ultimaker?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "Nemůžete se připojit k Vaší tiskárně UltiMaker?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4774,13 +4774,13 @@ msgstr "Připojit" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Vítejte v Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Vítejte v UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" -msgid "Please follow these steps to set up Ultimaker Cura. This will only take a few moments." -msgstr "Při nastavování postupujte podle těchto pokynů Ultimaker Cura. Bude to trvat jen několik okamžiků." +msgid "Please follow these steps to set up UltiMaker Cura. This will only take a few moments." +msgstr "Při nastavování postupujte podle těchto pokynů UltiMaker Cura. Bude to trvat jen několik okamžiků." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5654,8 +5654,8 @@ msgstr "Moje tiskárny" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Sledujte tiskárny v Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Sledujte tiskárny v UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5674,23 +5674,23 @@ msgstr "Sledujte tiskové úlohy a znovu tiskněte z historie." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Rozšiřte Ultimaker Cura pomocí modulů a materiálových profilů." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Rozšiřte UltiMaker Cura pomocí modulů a materiálových profilů." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Staňte se expertem na 3D tisk díky Ultimaker e-learningu." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Staňte se expertem na 3D tisk díky UltiMaker e-learningu." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Ultimaker podpora" +msgid "UltiMaker support" +msgstr "UltiMaker podpora" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Zjistěte, jak začít s Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Zjistěte, jak začít s UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5699,8 +5699,8 @@ msgstr "Položit otázku" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Poraďte se s Ultimaker komunitou." +msgid "Consult the UltiMaker Community." +msgstr "Poraďte se s UltiMaker komunitou." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5714,8 +5714,8 @@ msgstr "Dejte vývojářům vědět, že je něco špatně." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Navštivte web Ultimaker." +msgid "Visit the UltiMaker website." +msgstr "Navštivte web UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6011,8 +6011,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Vytvořit účet Ultimaker zdarma" +msgid "Create a free UltiMaker account" +msgstr "Vytvořit účet UltiMaker zdarma" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6026,8 +6026,8 @@ msgstr "Poslední aktualizace: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Ultimaker Account" +msgid "UltiMaker Account" +msgstr "UltiMaker Account" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6066,8 +6066,8 @@ msgstr "Cloudová tiskárna je offline. Prosím zkontrolujte, zda je tiskárna z #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." -msgstr "Tiskárna není připojena k vašemu účtu. Prosím navštivte Ultimaker Digital Factory pro navázání spojení." +msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." +msgstr "Tiskárna není připojena k vašemu účtu. Prosím navštivte UltiMaker Digital Factory pro navázání spojení." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6241,13 +6241,13 @@ msgstr "Post Processing" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Spravuje síťová připojení k síťovým tiskárnám Ultimaker." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Spravuje síťová připojení k síťovým tiskárnám UltiMaker." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Síťové připojení Ultimaker" +msgid "UltiMaker Network Connection" +msgstr "Síťové připojení UltiMaker" #: /3MFWriter/plugin.json msgctxt "description" @@ -6281,8 +6281,8 @@ msgstr "Informace o slicování" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Poskytuje podporu pro psaní balíčků formátu Ultimaker." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Poskytuje podporu pro psaní balíčků formátu UltiMaker." #: /UFPWriter/plugin.json msgctxt "name" @@ -6296,8 +6296,8 @@ msgstr "Připojuje k Digitální knihovně. Umožňuje Cuře otevírat a ukláda #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Digitální knihovna Ultimaker" +msgid "UltiMaker Digital Library" +msgstr "Digitální knihovna UltiMaker" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6331,13 +6331,13 @@ msgstr "Čtečka trimesh" #: /UltimakerMachineActions/plugin.json msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." -msgstr "Poskytuje akce strojů pro stroje Ultimaker (jako je průvodce vyrovnáváním postele, výběr upgradů atd.)." +msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc.)." +msgstr "Poskytuje akce strojů pro stroje UltiMaker (jako je průvodce vyrovnáváním postele, výběr upgradů atd.)." #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Akce zařízení Ultimaker" +msgid "UltiMaker machine actions" +msgstr "Akce zařízení UltiMaker" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6351,8 +6351,8 @@ msgstr "Čtečka kompresovaného G kódu" #: /Marketplace/plugin.json msgctxt "description" -msgid "Manages extensions to the application and allows browsing extensions from the Ultimaker website." -msgstr "Spravuje rozšíření aplikace a umožňuje prohlížení rozšíření z webu Ultimaker." +msgid "Manages extensions to the application and allows browsing extensions from the UltiMaker website." +msgstr "Spravuje rozšíření aplikace a umožňuje prohlížení rozšíření z webu UltiMaker." #: /Marketplace/plugin.json msgctxt "name" @@ -6701,8 +6701,8 @@ msgstr "Zapisovač G kódu" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Poskytuje podporu pro čtení balíčků formátu Ultimaker." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Poskytuje podporu pro čtení balíčků formátu UltiMaker." #: /UFPReader/plugin.json msgctxt "name" @@ -7018,8 +7018,8 @@ msgstr "Fáze přípravy" #~ msgstr "Email" #~ msgctxt "@description" -#~ msgid "Please sign in to get verified plugins and materials for Ultimaker Cura Enterprise" -#~ msgstr "Přihlaste se, abyste získali ověřené pluginy a materiály pro Ultimaker Cura Enterprise" +#~ msgid "Please sign in to get verified plugins and materials for UltiMaker Cura Enterprise" +#~ msgstr "Přihlaste se, abyste získali ověřené pluginy a materiály pro UltiMaker Cura Enterprise" #~ msgctxt "@label" #~ msgid "Version" @@ -7176,16 +7176,16 @@ msgstr "Fáze přípravy" #~ msgstr "Poskytuje zobrazení simulace." #~ msgctxt "@info:status" -#~ msgid "Send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "Odesílejte a sledujte tiskové úlohy odkudkoli pomocí účtu Ultimaker." +#~ msgid "Send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "Odesílejte a sledujte tiskové úlohy odkudkoli pomocí účtu UltiMaker." #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Digital Factory" -#~ msgstr "Připojit se k Ultimaker Digital Factory" +#~ msgid "Connect to UltiMaker Digital Factory" +#~ msgstr "Připojit se k UltiMaker Digital Factory" #~ msgctxt "@info" -#~ msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura." -#~ msgstr "Vstup z webových kamer pro cloudové tiskárny nemůže být v Ultimaker Cura zobrazen." +#~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." +#~ msgstr "Vstup z webových kamer pro cloudové tiskárny nemůže být v UltiMaker Cura zobrazen." #~ msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" #~ msgid "New features or bug-fixes may be available for your {machine_name}! If not already at the latest version, it is recommended to update the firmware on your printer to version {latest_version}." @@ -7255,8 +7255,8 @@ msgstr "Fáze přípravy" #~ msgstr "Dokončit" #~ msgctxt "@label" -#~ msgid "Ultimaker Account" -#~ msgstr "Účet Ultimaker" +#~ msgid "UltiMaker Account" +#~ msgstr "Účet UltiMaker" #~ msgctxt "@text" #~ msgid "Your key to connected 3D printing" @@ -7271,8 +7271,8 @@ msgstr "Fáze přípravy" #~ msgstr "- Zůstaňte flexibilní díky synchronizaci nastavení a přístupu k ní kdekoli" #~ msgctxt "@text" -#~ msgid "- Increase efficiency with a remote workflow on Ultimaker printers" -#~ msgstr "- Zvyšte efektivitu pomocí vzdáleného pracovního postupu na tiskárnách Ultimaker" +#~ msgid "- Increase efficiency with a remote workflow on UltiMaker printers" +#~ msgstr "- Zvyšte efektivitu pomocí vzdáleného pracovního postupu na tiskárnách UltiMaker" #~ msgctxt "@text" #~ msgid "" @@ -7283,8 +7283,8 @@ msgstr "Fáze přípravy" #~ "Ultimaker Cura. Bude to trvat jen několik okamžiků." #~ msgctxt "@label" -#~ msgid "What's new in Ultimaker Cura" -#~ msgstr "Co je nového v Ultimaker Cura" +#~ msgid "What's new in UltiMaker Cura" +#~ msgstr "Co je nového v UltiMaker Cura" #~ msgctxt "@label ({} is object name)" #~ msgid "Are you sure you wish to remove {}? This cannot be undone!" @@ -7315,12 +7315,12 @@ msgstr "Fáze přípravy" #~ msgstr "Tiskárny přidané z Digital Factory:
      {}
    " #~ msgctxt "info:status" -#~ msgid "
      {}
    To establish a connection, please visit the Ultimaker Digital Factory." -#~ msgstr "
      {}
    Chcete-li navázat spojení, navštivte Ultimaker Digital Factory." +#~ msgid "
      {}
    To establish a connection, please visit the UltiMaker Digital Factory." +#~ msgstr "
      {}
    Chcete-li navázat spojení, navštivte Ultimaker Digital Factory." #~ msgctxt "@label ({} is printer name)" -#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit Ultimaker Digital Factory.

    Are you sure you want to remove {} temporarily?" -#~ msgstr "{} bude odebrána až do další synchronizace účtu.
    Chcete-li {} trvale odebrat, navštivte Ultimaker Digital Factory.

    Opravdu chcete dočasně odebrat {}?" +#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit UltiMaker Digital Factory.

    Are you sure you want to remove {} temporarily?" +#~ msgstr "{} bude odebrána až do další synchronizace účtu.
    Chcete-li {} trvale odebrat, navštivte Ultimaker Digital Factory.

    Opravdu chcete dočasně odebrat {}?" #~ msgctxt "@label" #~ msgid "" @@ -7355,8 +7355,8 @@ msgstr "Fáze přípravy" #~ msgstr "Webová kamera není k dispozici, protože monitorujete cloudovou tiskárnu." #~ msgctxt "@button" -#~ msgid "Ultimaker Digital Factory" -#~ msgstr "Ultimaker Digital Factory" +#~ msgid "UltiMaker Digital Factory" +#~ msgstr "UltiMaker Digital Factory" #~ msgctxt "@text:window, %1 is a profile name" #~ msgid "" @@ -7396,8 +7396,8 @@ msgstr "Fáze přípravy" #~ msgstr "Připojeno přes Cloud" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "Připojit k Ultimaker Cloudu" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "Připojit k UltiMaker Cloudu" #~ msgctxt "@label" #~ msgid "You need to login first before you can rate" @@ -7424,16 +7424,16 @@ msgstr "Fáze přípravy" #~ msgstr "Autor" #~ msgctxt "@description" -#~ msgid "Get plugins and materials verified by Ultimaker" -#~ msgstr "Získejte pluginy a materiály ověřené společností Ultimaker" +#~ msgid "Get plugins and materials verified by UltiMaker" +#~ msgstr "Získejte pluginy a materiály ověřené společností UltiMaker" #~ msgctxt "@label The argument is a username." #~ msgid "Hi %1" #~ msgstr "Zdravím, %1" #~ msgctxt "@button" -#~ msgid "Ultimaker account" -#~ msgstr "Ultimaker účet" +#~ msgid "UltiMaker account" +#~ msgstr "UltiMaker účet" #~ msgctxt "@button" #~ msgid "Sign out" @@ -7512,20 +7512,20 @@ msgstr "Fáze přípravy" #~ msgstr "Jazyk:" #~ msgctxt "@label" -#~ msgid "Ultimaker Cloud" -#~ msgstr "Ultimaker Cloud" +#~ msgid "UltiMaker Cloud" +#~ msgstr "UltiMaker Cloud" #~ msgctxt "@text" #~ msgid "The next generation 3D printing workflow" #~ msgstr "Pracovní postup 3D tisku nové generace" #~ msgctxt "@text" -#~ msgid "- Send print jobs to Ultimaker printers outside your local network" -#~ msgstr "- Odeslat tiskové úlohy do tiskáren Ultimaker mimo vaši místní síť" +#~ msgid "- Send print jobs to UltiMaker printers outside your local network" +#~ msgstr "- Odeslat tiskové úlohy do tiskáren UltiMaker mimo vaši místní síť" #~ msgctxt "@text" -#~ msgid "- Store your Ultimaker Cura settings in the cloud for use anywhere" -#~ msgstr "- Uložte svá nastavení Ultimaker Cura do cloudu pro použití kdekoli" +#~ msgid "- Store your UltiMaker Cura settings in the cloud for use anywhere" +#~ msgstr "- Uložte svá nastavení UltiMaker Cura do cloudu pro použití kdekoli" #~ msgctxt "@text" #~ msgid "- Get exclusive access to print profiles from leading brands" diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index 53a5e1e55a..be5e9cb17f 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -443,8 +443,8 @@ msgstr "Es kann kein neuer Anmeldevorgang gestartet werden. Bitte überprüfen S #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Der Ultimaker-Konto-Server konnte nicht erreicht werden." +msgid "Unable to reach the UltiMaker account server." +msgstr "Der UltiMaker-Konto-Server konnte nicht erreicht werden." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -731,15 +731,15 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    Hoppla, bei Ultimaker Cura ist ein Problem aufgetreten.

    \n

    Beim Start ist ein nicht behebbarer Fehler aufgetreten. Er" +msgstr "

    Hoppla, bei UltiMaker Cura ist ein Problem aufgetreten.

    \n

    Beim Start ist ein nicht behebbarer Fehler aufgetreten. Er" " wurde möglicherweise durch einige falsche Konfigurationsdateien verursacht. Wir empfehlen ein Backup und Reset Ihrer Konfiguration.

    \n " "

    Backups sind im Konfigurationsordner abgelegt.

    \n

    Senden Sie uns diesen Absturzbericht bitte, um das Problem zu beheben.

    \n" " " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Absturzbericht an Ultimaker senden" +msgid "Send crash report to UltiMaker" +msgstr "Absturzbericht an UltiMaker senden" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -939,7 +939,7 @@ msgstr "Netzwerkfehler" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Ihr Ultimaker-Konto hat einen neuen Drucker erkannt" msgstr[1] "Ihr Ultimaker-Konto hat neue Drucker erkannt" @@ -1067,8 +1067,8 @@ msgstr[1] "Diese Drucker sind nicht mit der Digital Factory verbunden:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1098,7 +1098,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Sie versuchen, sich mit einem Drucker zu verbinden, auf dem Ultimaker Connect nicht läuft. Bitte aktualisieren Sie die Firmware des Druckers." +msgstr "Sie versuchen, sich mit einem Drucker zu verbinden, auf dem UltiMaker Connect nicht läuft. Bitte aktualisieren Sie die Firmware des Druckers." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1215,8 +1215,8 @@ msgstr "Druck überwachen" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Verfolgen Sie den Druck in der Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Verfolgen Sie den Druck in der UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1326,8 +1326,8 @@ msgstr "Kann nicht in UFP-Datei schreiben:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimaker Format Package" +msgid "UltiMaker Format Package" +msgstr "UltiMaker Format Package" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1451,8 +1451,8 @@ msgstr "Möchten Sie Material- und Softwarepakete mit Ihrem Konto synchronisiere #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Von Ihrem Ultimaker-Konto erkannte Änderungen" +msgid "Changes detected from your UltiMaker account" +msgstr "Von Ihrem UltiMaker-Konto erkannte Änderungen" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1614,8 +1614,8 @@ msgstr "Einen Fehler melden" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Einen Fehler im Issue Tracker von Ultimaker Cura melden." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Einen Fehler im Issue Tracker von UltiMaker Cura melden." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1764,7 +1764,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "Projektdatei {0} verwendet Profile, die nicht mit dieser Ultimaker Cura-Version kompatibel sind." +msgstr "Projektdatei {0} verwendet Profile, die nicht mit dieser UltiMaker Cura-Version kompatibel sind." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2438,7 +2438,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Webcam-Feeds für Cloud-Drucker können nicht in Ultimaker Cura angezeigt werden. Klicken Sie auf „Drucker verwalten“, um die Ultimaker Digital Factory zu" +msgstr "Webcam-Feeds für Cloud-Drucker können nicht in UltiMaker Cura angezeigt werden. Klicken Sie auf „Drucker verwalten“, um die Ultimaker Digital Factory zu" " besuchen und diese Webcam zu sehen." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2505,8 +2505,8 @@ msgstr "Zuerst verfügbar" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Überwachen Sie Ihre Drucker standortunabhängig mit Ultimaker Digital Factory." +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Überwachen Sie Ihre Drucker standortunabhängig mit UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2821,7 +2821,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Nachfolgend ist ein Beispiel aller Daten, die geteilt werden:" +msgstr "UltiMaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Nachfolgend ist ein Beispiel aller Daten, die geteilt werden:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2845,8 +2845,8 @@ msgstr "Cura-Projekt speichern" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Wählen Sie bitte alle Upgrades für dieses Ultimaker-Original" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Wählen Sie bitte alle Upgrades für dieses UltiMaker-Original" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2952,7 +2952,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Optimieren Sie Ihren Workflow und individualisieren Sie Ihr Erlebnis in Ultimaker Cura mit Plug-ins, die von der großartigen Community unserer Anwender" +msgstr "Optimieren Sie Ihren Workflow und individualisieren Sie Ihr Erlebnis in UltiMaker Cura mit Plug-ins, die von der großartigen Community unserer Anwender" " bereitgestellt werden." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 @@ -3016,7 +3016,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Wählen und installieren Sie Materialprofile, die für Ihre Ultimaker 3D-Drucker optimiert sind." +msgstr "Wählen und installieren Sie Materialprofile, die für Ihre UltiMaker 3D-Drucker optimiert sind." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3137,18 +3137,18 @@ msgstr "Weitere laden" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Durch Ultimaker verifiziertes Plug-in" +msgid "UltiMaker Verified Plug-in" +msgstr "Durch UltiMaker verifiziertes Plug-in" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Durch Ultimaker zertifiziertes Material" +msgid "UltiMaker Certified Material" +msgstr "Durch UltiMaker zertifiziertes Material" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Durch Ultimaker verifiziertes Paket" +msgid "UltiMaker Verified Package" +msgstr "Durch UltiMaker verifiziertes Paket" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3160,7 +3160,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Verwalten Sie hier Ihre Ultimaker Cura Plug-ins und Ihre Materialprofile. Halten Sie Ihre Plug-ins auf dem neuesten Stand und sichern Sie Ihr Setup regelmäßig." +msgstr "Verwalten Sie hier Ihre UltiMaker Cura Plug-ins und Ihre Materialprofile. Halten Sie Ihre Plug-ins auf dem neuesten Stand und sichern Sie Ihr Setup regelmäßig." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" @@ -4487,7 +4487,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "Sollen anonyme Daten über Ihren Druck an Ultimaker gesendet werden? Beachten Sie, dass keine Modelle, IP-Adressen oder andere personenbezogene Daten gesendet" +msgstr "Sollen anonyme Daten über Ihren Druck an UltiMaker gesendet werden? Beachten Sie, dass keine Modelle, IP-Adressen oder andere personenbezogene Daten gesendet" " oder gespeichert werden." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 @@ -4806,8 +4806,8 @@ msgstr "Störungen beheben" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Bei der Ultimaker-Plattform anmelden" +msgid "Sign in to the UltiMaker platform" +msgstr "Bei der UltiMaker-Plattform anmelden" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4821,8 +4821,8 @@ msgstr "Materialeinstellungen und Plug-ins sichern und synchronisieren" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Ideenaustausch mit und Hilfe von mehr als 48.000 Benutzern in der Ultimaker Community" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Ideenaustausch mit und Hilfe von mehr als 48.000 Benutzern in der UltiMaker Community" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4831,20 +4831,20 @@ msgstr "Überspringen" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Kostenloses Ultimaker-Konto erstellen" +msgid "Create a free UltiMaker Account" +msgstr "Kostenloses UltiMaker-Konto erstellen" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Helfen Sie uns, Ultimaker Cura zu verbessern" +msgid "Help us to improve UltiMaker Cura" +msgstr "Helfen Sie uns, UltiMaker Cura zu verbessern" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Dazu gehören:" +msgstr "UltiMaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Dazu gehören:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4870,7 +4870,7 @@ msgstr "Druckeinstellungen" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Die von Ultimaker Cura erfassten Daten enthalten keine personenbezogenen Daten." +msgstr "Die von UltiMaker Cura erfassten Daten enthalten keine personenbezogenen Daten." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4940,8 +4940,8 @@ msgstr "Verbindung mit Drucker nicht möglich." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Sie können keine Verbindung zu Ihrem Ultimaker-Drucker herstellen?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "Sie können keine Verbindung zu Ihrem UltiMaker-Drucker herstellen?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4962,15 +4962,15 @@ msgstr "Verbinden" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Willkommen bei Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Willkommen bei UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Befolgen Sie bitte diese Schritte für das Einrichten von\nUltimaker Cura. Dies dauert nur wenige Sekunden." +msgstr "Befolgen Sie bitte diese Schritte für das Einrichten von\nUltiMaker Cura. Dies dauert nur wenige Sekunden." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5670,7 +5670,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura wurde von Ultimaker B.V. in Zusammenarbeit mit der Community entwickelt.\nCura verwendet mit Stolz die folgenden Open Source-Projekte:" +msgstr "Cura wurde von UltiMaker B.V. in Zusammenarbeit mit der Community entwickelt.\nCura verwendet mit Stolz die folgenden Open Source-Projekte:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5855,8 +5855,8 @@ msgstr "Meine Drucker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Überwachen Sie Drucker in der Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Überwachen Sie Drucker in der UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5875,23 +5875,23 @@ msgstr "Überwachen Sie Druckaufträge und drucken Sie sie aus Ihrem Druckprotok #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Erweitern Sie Ultimaker Cura durch Plugins und Materialprofile." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Erweitern Sie UltiMaker Cura durch Plugins und Materialprofile." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Werden Sie ein 3D-Druck-Experte mittels des E-Learning von Ultimaker." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Werden Sie ein 3D-Druck-Experte mittels des E-Learning von UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Ultimaker Kundendienst" +msgid "UltiMaker support" +msgstr "UltiMaker Kundendienst" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Erfahren Sie, wie Sie mit Ultimaker Cura Ihre Arbeit beginnen können." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Erfahren Sie, wie Sie mit UltiMaker Cura Ihre Arbeit beginnen können." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5900,8 +5900,8 @@ msgstr "Eine Frage stellen" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Wenden Sie sich an die Ultimaker Community." +msgid "Consult the UltiMaker Community." +msgstr "Wenden Sie sich an die UltiMaker Community." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5915,8 +5915,8 @@ msgstr "Lassen Sie es die Entwickler wissen, falls etwas schief läuft." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Besuchen Sie die Ultimaker-Website." +msgid "Visit the UltiMaker website." +msgstr "Besuchen Sie die UltiMaker-Website." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6235,8 +6235,8 @@ msgstr "- Materialprofile und Plug-ins aus dem Marketplace hinzufügen\n- Materi #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Kostenloses Ultimaker-Konto erstellen" +msgid "Create a free UltiMaker account" +msgstr "Kostenloses UltiMaker-Konto erstellen" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6250,8 +6250,8 @@ msgstr "Letztes Update: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Ultimaker‑Konto" +msgid "UltiMaker Account" +msgstr "UltiMaker‑Konto" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6295,7 +6295,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Der Drucker ist nicht mit Ihrem Konto verbunden. Bitte besuchen Sie die Ultimaker Digital Factory, um eine Verbindung herzustellen." +msgstr "Der Drucker ist nicht mit Ihrem Konto verbunden. Bitte besuchen Sie die UltiMaker Digital Factory, um eine Verbindung herzustellen." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6475,13 +6475,13 @@ msgstr "Nachbearbeitung" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Verwaltet Netzwerkverbindungen zu Ultimaker-Netzwerkdruckern." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Verwaltet Netzwerkverbindungen zu UltiMaker-Netzwerkdruckern." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ultimaker-Netzwerkverbindung" +msgid "UltiMaker Network Connection" +msgstr "UltiMaker-Netzwerkverbindung" #: /3MFWriter/plugin.json msgctxt "description" @@ -6515,8 +6515,8 @@ msgstr "Slice-Informationen" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Bietet Unterstützung für das Schreiben von Ultimaker Format Packages." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Bietet Unterstützung für das Schreiben von UltiMaker Format Packages." #: /UFPWriter/plugin.json msgctxt "name" @@ -6532,8 +6532,8 @@ msgstr "Stellt eine Verbindung zur Digitalen Bibliothek her und ermöglicht es C #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Digitale Bibliothek von Ultimaker" +msgid "UltiMaker Digital Library" +msgstr "Digitale Bibliothek von UltiMaker" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6570,12 +6570,12 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Ermöglicht Maschinenabläufe für Ultimaker-Maschinen (z. B. Assistent für Bettnivellierung, Auswahl von Upgrades usw.)" +msgstr "Ermöglicht Maschinenabläufe für UltiMaker-Maschinen (z. B. Assistent für Bettnivellierung, Auswahl von Upgrades usw.)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ultimaker-Maschinenabläufe" +msgid "UltiMaker machine actions" +msgstr "UltiMaker-Maschinenabläufe" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6592,7 +6592,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "Verwaltet die Erweiterungen der Anwendung und ermöglicht das Durchsuchen von Erweiterungen auf der Ultimaker-Website." +msgstr "Verwaltet die Erweiterungen der Anwendung und ermöglicht das Durchsuchen von Erweiterungen auf der UltiMaker-Website." #: /Marketplace/plugin.json msgctxt "name" @@ -6944,8 +6944,8 @@ msgstr "G-Code-Writer" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Bietet Unterstützung für das Lesen von Ultimaker Format Packages." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Bietet Unterstützung für das Lesen von UltiMaker Format Packages." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index 943158ee41..c6252c049a 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -443,8 +443,8 @@ msgstr "No se puede iniciar un nuevo proceso de inicio de sesión. Compruebe si #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "No se puede acceder al servidor de cuentas de Ultimaker." +msgid "Unable to reach the UltiMaker account server." +msgstr "No se puede acceder al servidor de cuentas de UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -732,15 +732,15 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    ¡Vaya! Ultimaker Cura ha encontrado un error.

    \n

    Hemos detectado un error irreversible durante el inicio, posiblemente" +msgstr "

    ¡Vaya! UltiMaker Cura ha encontrado un error.

    \n

    Hemos detectado un error irreversible durante el inicio, posiblemente" " como consecuencia de varios archivos de configuración erróneos. Le recomendamos que realice una copia de seguridad y que restablezca los ajustes.

    \n" "

    Las copias de seguridad se encuentran en la carpeta de configuración.

    \n

    Envíenos el informe de errores" " para que podamos solucionar el problema.

    \n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Enviar informe de errores a Ultimaker" +msgid "Send crash report to UltiMaker" +msgstr "Enviar informe de errores a UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -940,7 +940,7 @@ msgstr "Error de red" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Se ha detectado una nueva impresora en su cuenta de Ultimaker" msgstr[1] "Se han detectado nuevas impresoras en su cuenta de Ultimaker" @@ -1067,8 +1067,8 @@ msgstr[1] "Estas impresoras no están vinculadas a Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1098,7 +1098,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Está intentando conectarse a una impresora que no está ejecutando Ultimaker Connect. Actualice la impresora al firmware más reciente." +msgstr "Está intentando conectarse a una impresora que no está ejecutando UltiMaker Connect. Actualice la impresora al firmware más reciente." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1215,8 +1215,8 @@ msgstr "Supervisar la impresión" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Haga un seguimiento de la impresión en Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Haga un seguimiento de la impresión en UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1326,8 +1326,8 @@ msgstr "No se puede escribir en el archivo UFP:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Paquete de formato Ultimaker" +msgid "UltiMaker Format Package" +msgstr "Paquete de formato UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1451,8 +1451,8 @@ msgstr "¿Desea sincronizar el material y los paquetes de software con su cuenta #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Se han detectado cambios desde su cuenta de Ultimaker" +msgid "Changes detected from your UltiMaker account" +msgstr "Se han detectado cambios desde su cuenta de UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1614,8 +1614,8 @@ msgstr "Informar del error" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Informar de un error en el rastreador de problemas de Ultimaker Cura." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Informar de un error en el rastreador de problemas de UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1764,7 +1764,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "El archivo de proyecto {0} se ha creado con perfiles desconocidos para esta versión de Ultimaker Cura." +msgstr "El archivo de proyecto {0} se ha creado con perfiles desconocidos para esta versión de UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2439,7 +2439,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Las transmisiones de la cámara web para impresoras en la nube no se pueden ver en Ultimaker Cura. Haga clic en \"Administrar impresora\" para ir a Ultimaker" +msgstr "Las transmisiones de la cámara web para impresoras en la nube no se pueden ver en UltiMaker Cura. Haga clic en \"Administrar impresora\" para ir a Ultimaker" " Digital Factory y ver esta cámara web." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2506,8 +2506,8 @@ msgstr "Primera disponible" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Supervise sus impresoras desde cualquier lugar con Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Supervise sus impresoras desde cualquier lugar con UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2822,7 +2822,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura recopila datos anónimos para mejorar la calidad de impresión y la experiencia de usuario. A continuación, hay un ejemplo de todos los datos" +msgstr "UltiMaker Cura recopila datos anónimos para mejorar la calidad de impresión y la experiencia de usuario. A continuación, hay un ejemplo de todos los datos" " que se comparten:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 @@ -2847,8 +2847,8 @@ msgstr "Guardar el proyecto de Cura" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Seleccione cualquier actualización de Ultimaker Original" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Seleccione cualquier actualización de UltiMaker Original" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2954,7 +2954,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Optimice su flujo de trabajo y personalice su experiencia de Ultimaker Cura con complementos proporcionados por nuestra increíble comunidad de usuarios." +msgstr "Optimice su flujo de trabajo y personalice su experiencia de UltiMaker Cura con complementos proporcionados por nuestra increíble comunidad de usuarios." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -3017,7 +3017,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Seleccione e instale perfiles de material optimizados para sus impresoras 3D Ultimaker." +msgstr "Seleccione e instale perfiles de material optimizados para sus impresoras 3D UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3138,18 +3138,18 @@ msgstr "Cargar más" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Complemento verificado por Ultimaker" +msgid "UltiMaker Verified Plug-in" +msgstr "Complemento verificado por UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Material certificado por Ultimaker" +msgid "UltiMaker Certified Material" +msgstr "Material certificado por UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Paquete verificado por Ultimaker" +msgid "UltiMaker Verified Package" +msgstr "Paquete verificado por UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3161,7 +3161,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Gestionar los complementos y los perfiles de materiales de Ultimaker Cura aquí. Asegúrese de mantener los complementos actualizados y hacer una copia de" +msgstr "Gestionar los complementos y los perfiles de materiales de UltiMaker Cura aquí. Asegúrese de mantener los complementos actualizados y hacer una copia de" " seguridad de su configuración regularmente." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4488,7 +4488,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "¿Deben enviarse datos anónimos sobre la impresión a Ultimaker? Tenga en cuenta que no se envían ni almacenan modelos, direcciones IP ni otra información" +msgstr "¿Deben enviarse datos anónimos sobre la impresión a UltiMaker? Tenga en cuenta que no se envían ni almacenan modelos, direcciones IP ni otra información" " de identificación personal." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 @@ -4807,8 +4807,8 @@ msgstr "Solución de problemas" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Inicie sesión en la plataforma Ultimaker" +msgid "Sign in to the UltiMaker platform" +msgstr "Inicie sesión en la plataforma UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4822,8 +4822,8 @@ msgstr "Realice copias de seguridad y sincronice los ajustes y complementos de s #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Comparta ideas y obtenga ayuda de más de 48 000 usuarios de la comunidad Ultimaker" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Comparta ideas y obtenga ayuda de más de 48 000 usuarios de la comunidad UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4832,20 +4832,20 @@ msgstr "Omitir" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Cree una cuenta gratuita de Ultimaker" +msgid "Create a free UltiMaker Account" +msgstr "Cree una cuenta gratuita de UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Ayúdenos a mejorar Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "Ayúdenos a mejorar UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura recopila datos anónimos para mejorar la calidad de impresión y la experiencia de usuario, entre otros:" +msgstr "UltiMaker Cura recopila datos anónimos para mejorar la calidad de impresión y la experiencia de usuario, entre otros:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4871,7 +4871,7 @@ msgstr "Ajustes de impresión" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Los datos recopilados por Ultimaker Cura no contendrán información personal." +msgstr "Los datos recopilados por UltiMaker Cura no contendrán información personal." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4941,8 +4941,8 @@ msgstr "No se ha podido conectar al dispositivo." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "¿No puede conectarse a la impresora Ultimaker?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "¿No puede conectarse a la impresora UltiMaker?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4963,15 +4963,15 @@ msgstr "Conectar" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Le damos la bienvenida a Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Le damos la bienvenida a UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Siga estos pasos para configurar\nUltimaker Cura. Solo le llevará unos minutos." +msgstr "Siga estos pasos para configurar\nUltiMaker Cura. Solo le llevará unos minutos." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5671,7 +5671,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Ultimaker B.V. ha desarrollado Cura en cooperación con la comunidad.\nCura se enorgullece de utilizar los siguientes proyectos de código abierto:" +msgstr "UltiMaker B.V. ha desarrollado Cura en cooperación con la comunidad.\nCura se enorgullece de utilizar los siguientes proyectos de código abierto:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5856,8 +5856,8 @@ msgstr "Mis impresoras" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Supervise las impresoras de Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Supervise las impresoras de UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5876,23 +5876,23 @@ msgstr "Supervise los trabajos de impresión y vuelva a imprimir desde su histor #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Amplíe Ultimaker Cura con complementos y perfiles de materiales." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Amplíe UltiMaker Cura con complementos y perfiles de materiales." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Conviértase en un experto en impresión 3D con el aprendizaje electrónico de Ultimaker." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Conviértase en un experto en impresión 3D con el aprendizaje electrónico de UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Soporte técnico de Ultimaker" +msgid "UltiMaker support" +msgstr "Soporte técnico de UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Aprenda cómo empezar a utilizar Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Aprenda cómo empezar a utilizar UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5901,8 +5901,8 @@ msgstr "Haga una pregunta" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Consulte en la Comunidad Ultimaker." +msgid "Consult the UltiMaker Community." +msgstr "Consulte en la Comunidad UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5916,8 +5916,8 @@ msgstr "Informe a los desarrolladores de que algo no funciona bien." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Visite el sitio web de Ultimaker." +msgid "Visit the UltiMaker website." +msgstr "Visite el sitio web de UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6236,8 +6236,8 @@ msgstr "- Añada perfiles de materiales y complementos del Marketplace \n- Reali #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Cree una cuenta gratuita de Ultimaker" +msgid "Create a free UltiMaker account" +msgstr "Cree una cuenta gratuita de UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6251,8 +6251,8 @@ msgstr "Última actualización: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Cuenta de Ultimaker" +msgid "UltiMaker Account" +msgstr "Cuenta de UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6296,7 +6296,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Esta impresora no está vinculada a su cuenta. Vaya a Ultimaker Digital Factory para establecer una conexión." +msgstr "Esta impresora no está vinculada a su cuenta. Vaya a UltiMaker Digital Factory para establecer una conexión." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6476,13 +6476,13 @@ msgstr "Posprocesamiento" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Gestiona las conexiones de red de las impresoras Ultimaker conectadas." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Gestiona las conexiones de red de las impresoras UltiMaker conectadas." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Conexión en red de Ultimaker" +msgid "UltiMaker Network Connection" +msgstr "Conexión en red de UltiMaker" #: /3MFWriter/plugin.json msgctxt "description" @@ -6516,8 +6516,8 @@ msgstr "Info de la segmentación" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Permite la escritura de paquetes de formato Ultimaker." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Permite la escritura de paquetes de formato UltiMaker." #: /UFPWriter/plugin.json msgctxt "name" @@ -6533,8 +6533,8 @@ msgstr "Se conecta a la biblioteca digital, por lo que Cura puede abrir y guarda #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6571,13 +6571,13 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Proporciona las acciones de la máquina de las máquinas Ultimaker (como un asistente para la nivelación de la plataforma, la selección de actualizaciones," +msgstr "Proporciona las acciones de la máquina de las máquinas UltiMaker (como un asistente para la nivelación de la plataforma, la selección de actualizaciones," " etc.)." #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Acciones de la máquina Ultimaker" +msgid "UltiMaker machine actions" +msgstr "Acciones de la máquina UltiMaker" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6594,7 +6594,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "Gestiona las extensiones de la aplicación y permite navegar por las extensiones desde el sitio web de Ultimaker." +msgstr "Gestiona las extensiones de la aplicación y permite navegar por las extensiones desde el sitio web de UltiMaker." #: /Marketplace/plugin.json msgctxt "name" @@ -6946,8 +6946,8 @@ msgstr "Escritor de GCode" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Proporciona soporte para la lectura de paquetes de formato Ultimaker." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Proporciona soporte para la lectura de paquetes de formato UltiMaker." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index 87856edcfb..11e2a0c9ac 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -423,7 +423,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." +msgid "Unable to reach the UltiMaker account server." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 @@ -695,7 +695,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" +msgid "Send crash report to UltiMaker" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 @@ -893,7 +893,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "" msgstr[1] "" @@ -1013,7 +1013,7 @@ msgstr[1] "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 @@ -1041,7 +1041,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" -msgid "You are attempting to connect to a printer that is not running Ultimaker Connect. Please update the printer to the latest firmware." +msgid "You are attempting to connect to a printer that is not running UltiMaker Connect. Please update the printer to the latest firmware." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 @@ -1156,7 +1156,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 @@ -1265,7 +1265,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" +msgid "UltiMaker Format Package" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 @@ -1387,7 +1387,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" +msgid "Changes detected from your UltiMaker account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 @@ -1548,7 +1548,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." +msgid "Report a bug on UltiMaker Cura's issue tracker." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 @@ -1674,7 +1674,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723 #, python-brace-format msgctxt "@info:error Don't translate the XML tag !" -msgid "Project file {0} is made using profiles that are unknown to this version of Ultimaker Cura." +msgid "Project file {0} is made using profiles that are unknown to this version of UltiMaker Cura." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2314,7 +2314,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2381,7 +2381,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -2680,7 +2680,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" -msgid "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" +msgid "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 @@ -2705,8 +2705,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Valitse tähän Ultimaker Original -laitteeseen tehdyt päivitykset" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Valitse tähän UltiMaker Original -laitteeseen tehdyt päivitykset" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2801,7 +2801,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" -msgid "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users." +msgid "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 @@ -2860,7 +2860,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" -msgid "Select and install material profiles optimised for your Ultimaker 3D printers." +msgid "Select and install material profiles optimised for your UltiMaker 3D printers." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 @@ -2982,17 +2982,17 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" +msgid "UltiMaker Verified Plug-in" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" +msgid "UltiMaker Certified Material" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" +msgid "UltiMaker Verified Package" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 @@ -3002,7 +3002,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" -msgid "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." +msgid "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4267,8 +4267,8 @@ msgstr "Tietosuoja" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "Pitäisikö anonyymejä tietoja tulosteesta lähettää Ultimakerille? Huomaa, että malleja, IP-osoitteita tai muita henkilökohtaisia tietoja ei lähetetä eikä tallenneta." +msgid "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "Pitäisikö anonyymejä tietoja tulosteesta lähettää UltiMakerille? Huomaa, että malleja, IP-osoitteita tai muita henkilökohtaisia tietoja ei lähetetä eikä tallenneta." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4581,7 +4581,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" +msgid "Sign in to the UltiMaker platform" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 @@ -4596,7 +4596,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 @@ -4606,17 +4606,17 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" +msgid "Create a free UltiMaker Account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" -msgid "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:" +msgid "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 @@ -4641,7 +4641,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" -msgid "Data collected by Ultimaker Cura will not contain any personal information." +msgid "Data collected by UltiMaker Cura will not contain any personal information." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 @@ -4712,7 +4712,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" +msgid "Can't connect to your UltiMaker printer?" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 @@ -4732,12 +4732,12 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" -msgid "Please follow these steps to set up Ultimaker Cura. This will only take a few moments." +msgid "Please follow these steps to set up UltiMaker Cura. This will only take a few moments." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 @@ -5609,7 +5609,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 @@ -5629,22 +5629,22 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." +msgid "Extend UltiMaker Cura with plugins and material profiles." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." +msgid "Become a 3D printing expert with UltiMaker e-learning." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" +msgid "UltiMaker support" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 @@ -5654,7 +5654,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." +msgid "Consult the UltiMaker Community." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 @@ -5669,7 +5669,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." +msgid "Visit the UltiMaker website." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 @@ -5963,7 +5963,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" +msgid "Create a free UltiMaker account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 @@ -5978,7 +5978,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" +msgid "UltiMaker Account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 @@ -6018,7 +6018,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." +msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 @@ -6193,12 +6193,12 @@ msgstr "Jälkikäsittely" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." +msgid "Manages network connections to UltiMaker networked printers." msgstr "" #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" +msgid "UltiMaker Network Connection" msgstr "" #: /3MFWriter/plugin.json @@ -6233,7 +6233,7 @@ msgstr "Viipalointitiedot" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." +msgid "Provides support for writing UltiMaker Format Packages." msgstr "" #: /UFPWriter/plugin.json @@ -6248,7 +6248,7 @@ msgstr "" #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" msgstr "" #: /GCodeProfileReader/plugin.json @@ -6283,13 +6283,13 @@ msgstr "" #: /UltimakerMachineActions/plugin.json msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." +msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc.)." msgstr "" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ultimaker-laitteen toiminnot" +msgid "UltiMaker machine actions" +msgstr "UltiMaker-laitteen toiminnot" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6303,7 +6303,7 @@ msgstr "" #: /Marketplace/plugin.json msgctxt "description" -msgid "Manages extensions to the application and allows browsing extensions from the Ultimaker website." +msgid "Manages extensions to the application and allows browsing extensions from the UltiMaker website." msgstr "" #: /Marketplace/plugin.json @@ -6653,7 +6653,7 @@ msgstr "" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." +msgid "Provides support for reading UltiMaker Format Packages." msgstr "" #: /UFPReader/plugin.json @@ -6928,8 +6928,8 @@ msgstr "" #~ msgstr "Päivitä nykyinen" #~ msgctxt "@label" -#~ msgid "Please select any upgrades made to this Ultimaker 2." -#~ msgstr "Valitse tähän Ultimaker 2 -laitteeseen tehdyt päivitykset." +#~ msgid "Please select any upgrades made to this UltiMaker 2." +#~ msgstr "Valitse tähän UltiMaker 2 -laitteeseen tehdyt päivitykset." #~ msgctxt "@label" #~ msgid "Olsson Block" @@ -7321,16 +7321,16 @@ msgstr "" #~ msgstr "Alustan tarttuvuus" #~ msgctxt "@label" -#~ msgid "Need help improving your prints?
    Read the Ultimaker Troubleshooting Guides" -#~ msgstr "Tarvitsetko apua tulosteiden parantamiseen?
    Lue Ultimakerin vianmääritysoppaat" +#~ msgid "Need help improving your prints?
    Read the UltiMaker Troubleshooting Guides" +#~ msgstr "Tarvitsetko apua tulosteiden parantamiseen?
    Lue UltiMakerin vianmääritysoppaat" #~ msgctxt "@title:window" #~ msgid "Engine Log" #~ msgstr "Moottorin loki" #~ msgctxt "@tooltip" -#~ msgid "Click to check the material compatibility on Ultimaker.com." -#~ msgstr "Napsauta ja tarkista materiaalin yhteensopivuus sivustolla Ultimaker.com." +#~ msgid "Click to check the material compatibility on UltiMaker.com." +#~ msgstr "Napsauta ja tarkista materiaalin yhteensopivuus sivustolla UltiMaker.com." #~ msgctxt "description" #~ msgid "Shows changes since latest checked version." @@ -7389,16 +7389,16 @@ msgstr "" #~ msgstr "Avaa Doodle3D Connect -verkkoliittymä" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of Ultimaker 3 printers." -#~ msgstr "Tätä tulostinta ei ole määritetty Ultimaker 3 -tulostinryhmän isännäksi." +#~ msgid "This printer is not set up to host a group of UltiMaker 3 printers." +#~ msgstr "Tätä tulostinta ei ole määritetty UltiMaker 3 -tulostinryhmän isännäksi." #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 Ultimaker 3 printers." -#~ msgstr "Tämä tulostin on {count} tulostimen Ultimaker 3 -ryhmän isäntä." +#~ msgid "This printer is the host for a group of %1 UltiMaker 3 printers." +#~ msgstr "Tämä tulostin on {count} tulostimen UltiMaker 3 -ryhmän isäntä." #~ msgctxt "@label: arg 1 is group name" -#~ msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "%1 ei ole määritetty yhdistetyn Ultimaker 3 -tulostinryhmän isännäksi" +#~ msgid "%1 is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "%1 ei ole määritetty yhdistetyn UltiMaker 3 -tulostinryhmän isännäksi" #~ msgctxt "@action:button" #~ msgid "View print jobs" @@ -7508,12 +7508,12 @@ msgstr "" #~ msgstr "Lisäosien selain" #~ msgctxt "@label" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@action:menu" #~ msgid "Browse plugins..." @@ -7532,8 +7532,8 @@ msgstr "" #~ msgstr "Toiminnon avulla voidaan vaihtaa laitteen asetuksia (esim. tulostustilavuus, suuttimen koko yms.)" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "Ultimaker 3 -tulostimien verkkoyhteyksien hallinta" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "UltiMaker 3 -tulostimien verkkoyhteyksien hallinta" #~ msgctxt "name" #~ msgid "SolidWorks Integration" @@ -7556,8 +7556,8 @@ msgstr "" #~ msgstr "Lisäosien selain" #~ msgctxt "description" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "Ultimaker-laitteiden toimintojen käyttö (esim. pöydän tasaaminen, päivitysten valinta yms.)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "UltiMaker-laitteiden toimintojen käyttö (esim. pöydän tasaaminen, päivitysten valinta yms.)" #~ msgctxt "@item:inlistbox" #~ msgid "GCode File" @@ -7659,12 +7659,12 @@ msgstr "" #~ msgid "Resuming print..." #~ msgstr "Tulostusta jatketaan..." -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "Tätä tulostinta ei ole määritetty yhdistetyn Ultimaker 3 -tulostinryhmän isännäksi." +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "Tätä tulostinta ei ole määritetty yhdistetyn UltiMaker 3 -tulostinryhmän isännäksi." #~ msgctxt "Count is number of printers." -#~ msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." -#~ msgstr "Tämä tulostin on {count} tulostimen yhdistetyn Ultimaker 3 -ryhmän isäntä." +#~ msgid "This printer is the host for a group of {count} connected UltiMaker 3 printers." +#~ msgstr "Tämä tulostin on {count} tulostimen yhdistetyn UltiMaker 3 -ryhmän isäntä." #~ msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." #~ msgstr "{printer_name} on tulostanut työn '{job_name}'. Nouda työ ja vahvista alustan tyhjennys." @@ -7673,8 +7673,8 @@ msgstr "" #~ msgstr "{printer_name} on varattu työn {job_name} tulostamiseen. Muuta tulostimen määritys vastaamaan työtä, jotta tulostus alkaa." #~ msgctxt "@info:status" -#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "Uuden tulostustyön lähetys ei onnistu: tätä 3D-tulostinta ei ole (vielä) määritetty yhdistetyn Ultimaker 3 -tulostinryhmän isännäksi." +#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "Uuden tulostustyön lähetys ei onnistu: tätä 3D-tulostinta ei ole (vielä) määritetty yhdistetyn UltiMaker 3 -tulostinryhmän isännäksi." #~ msgctxt "@info:status" #~ msgid "Unable to send print job to group {cluster_name}." @@ -7963,12 +7963,12 @@ msgstr "" #~ msgstr "OK" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "Tätä tulostinta ei ole määritetty yhdistetyn Ultimaker 3 -tulostinryhmän isännäksi" +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "Tätä tulostinta ei ole määritetty yhdistetyn UltiMaker 3 -tulostinryhmän isännäksi" #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" -#~ msgstr "Tämä tulostin on %1 tulostimen yhdistetyn Ultimaker 3 -ryhmän isäntä" +#~ msgid "This printer is the host for a group of %1 connected UltiMaker 3 printers" +#~ msgstr "Tämä tulostin on %1 tulostimen yhdistetyn UltiMaker 3 -ryhmän isäntä" #~ msgctxt "@label" #~ msgid "Completed on: " @@ -8284,8 +8284,8 @@ msgstr "" #~ msgstr "Tukee irrotettavan aseman kytkemistä lennossa ja sille kirjoittamista." #~ msgctxt "@info:whatsthis" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "Ultimaker 3 -tulostimien verkkoyhteyksien hallinta" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "UltiMaker 3 -tulostimien verkkoyhteyksien hallinta" #~ msgctxt "@label" #~ msgid "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}" @@ -8448,12 +8448,12 @@ msgstr "" #~ msgstr "Tukee 3MF-tiedostojen kirjoittamista." #~ msgctxt "@label" -#~ msgid "Ultimaker machine actions" -#~ msgstr "Ultimaker-laitteen toiminnot" +#~ msgid "UltiMaker machine actions" +#~ msgstr "UltiMaker-laitteen toiminnot" #~ msgctxt "@info:whatsthis" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "Ultimaker-laitteiden toimintojen käyttö (esim. pöydän tasaaminen, päivitysten valinta yms.)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "UltiMaker-laitteiden toimintojen käyttö (esim. pöydän tasaaminen, päivitysten valinta yms.)" #~ msgctxt "@label" #~ msgid "Cura Profile Reader" @@ -8492,8 +8492,8 @@ msgstr "" #~ msgstr "Jos tulostinta ei ole luettelossa, lue verkkotulostuksen vianetsintäopas" #~ msgctxt "@item:inlistbox" -#~ msgid "Ultimaker" -#~ msgstr "Ultimaker" +#~ msgid "UltiMaker" +#~ msgstr "UltiMaker" #~ msgctxt "@label" #~ msgid "Support library for scientific computing " @@ -8642,8 +8642,8 @@ msgstr "" #~ msgstr "Ota tukirakenteet käyttöön. Nämä rakenteet tukevat mallin osia, joissa on merkittäviä ulokkeita." #~ msgctxt "@label" -#~ msgid "Need help improving your prints? Read the Ultimaker Troubleshooting Guides" -#~ msgstr "Tarvitsetko apua tulosteiden parantamiseen? Lue Ultimakerin vianetsintäoppaat" +#~ msgid "Need help improving your prints? Read the UltiMaker Troubleshooting Guides" +#~ msgstr "Tarvitsetko apua tulosteiden parantamiseen? Lue UltiMakerin vianetsintäoppaat" #~ msgctxt "@info:status" #~ msgid "Connected over the network to {0}. Please approve the access request on the printer." diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index d2b48930c9..e981217e50 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -444,8 +444,8 @@ msgstr "Impossible de lancer une nouvelle procédure de connexion. Vérifiez si #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Impossible d’atteindre le serveur du compte Ultimaker." +msgid "Unable to reach the UltiMaker account server." +msgstr "Impossible d’atteindre le serveur du compte UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -732,15 +732,15 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    Oups, un problème est survenu dans Ultimaker Cura.

    \n

    Une erreur irrécupérable est survenue lors du démarrage. Elle" +msgstr "

    Oups, un problème est survenu dans UltiMaker Cura.

    \n

    Une erreur irrécupérable est survenue lors du démarrage. Elle" " peut avoir été causée par des fichiers de configuration incorrects. Nous vous suggérons de sauvegarder et de réinitialiser votre configuration.

    \n " "

    Les sauvegardes se trouvent dans le dossier de configuration.

    \n

    Veuillez nous envoyer ce rapport d'incident pour que nous" " puissions résoudre le problème.

    \n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Envoyer le rapport de d'incident à Ultimaker" +msgid "Send crash report to UltiMaker" +msgstr "Envoyer le rapport de d'incident à UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -940,7 +940,7 @@ msgstr "Erreur de réseau" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Nouvelle imprimante détectée à partir de votre compte Ultimaker" msgstr[1] "Nouvelles imprimantes détectées à partir de votre compte Ultimaker" @@ -1067,8 +1067,8 @@ msgstr[1] "Ces imprimantes ne sont pas associées à Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1098,7 +1098,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Vous tentez de vous connecter à une imprimante qui n'exécute pas Ultimaker Connect. Veuillez mettre à jour l'imprimante avec le dernier micrologiciel." +msgstr "Vous tentez de vous connecter à une imprimante qui n'exécute pas UltiMaker Connect. Veuillez mettre à jour l'imprimante avec le dernier micrologiciel." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1215,8 +1215,8 @@ msgstr "Surveiller l'impression" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Suivre l'impression dans Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Suivre l'impression dans UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1326,8 +1326,8 @@ msgstr "Impossible d'écrire dans le fichier UFP:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimaker Format Package" +msgid "UltiMaker Format Package" +msgstr "UltiMaker Format Package" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1451,8 +1451,8 @@ msgstr "Vous souhaitez synchroniser du matériel et des logiciels avec votre com #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Changements détectés à partir de votre compte Ultimaker" +msgid "Changes detected from your UltiMaker account" +msgstr "Changements détectés à partir de votre compte UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1614,8 +1614,8 @@ msgstr "Notifier un bug" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Notifiez un bug sur l'outil de suivi des problèmes d'Ultimaker Cura." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Notifiez un bug sur l'outil de suivi des problèmes d'UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1768,7 +1768,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "Le fichier de projet {0} a été réalisé en utilisant des profils inconnus de cette version d'Ultimaker Cura." +msgstr "Le fichier de projet {0} a été réalisé en utilisant des profils inconnus de cette version d'UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2515,8 +2515,8 @@ msgstr "Premier disponible" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Surveillez vos imprimantes à distance avec Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Surveillez vos imprimantes à distance avec UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2857,8 +2857,8 @@ msgstr "Sauvegarder le projet Cura" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Sélectionnez les mises à niveau disponibles pour cet Ultimaker Original" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Sélectionnez les mises à niveau disponibles pour cet UltiMaker Original" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2965,7 +2965,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Simplifiez votre flux de travail et personnalisez votre expérience Ultimaker Cura avec des plugins fournis par notre incroyable communauté d'utilisateurs." +msgstr "Simplifiez votre flux de travail et personnalisez votre expérience UltiMaker Cura avec des plugins fournis par notre incroyable communauté d'utilisateurs." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -3028,7 +3028,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Sélectionnez et installez des profils de matériaux optimisés pour vos imprimantes 3D Ultimaker." +msgstr "Sélectionnez et installez des profils de matériaux optimisés pour vos imprimantes 3D UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3149,18 +3149,18 @@ msgstr "Charger plus" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Plugin Ultimaker vérifié" +msgid "UltiMaker Verified Plug-in" +msgstr "Plugin UltiMaker vérifié" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Matériau Ultimaker certifié" +msgid "UltiMaker Certified Material" +msgstr "Matériau UltiMaker certifié" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Package Ultimaker vérifié" +msgid "UltiMaker Verified Package" +msgstr "Package UltiMaker vérifié" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3172,7 +3172,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Gérez vos plugins Ultimaker Cura et vos profils matériaux ici. Assurez-vous de maintenir vos plugins à jour et de sauvegarder régulièrement votre configuration." +msgstr "Gérez vos plugins UltiMaker Cura et vos profils matériaux ici. Assurez-vous de maintenir vos plugins à jour et de sauvegarder régulièrement votre configuration." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" @@ -4833,8 +4833,8 @@ msgstr "Dépannage" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Connectez-vous à la plateforme Ultimaker" +msgid "Sign in to the UltiMaker platform" +msgstr "Connectez-vous à la plateforme UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4848,8 +4848,8 @@ msgstr "Sauvegardez et synchronisez vos paramètres de matériaux et vos plugins #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Partagez vos idées et obtenez l'aide de plus de 48,000 utilisateurs de la communauté Ultimaker" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Partagez vos idées et obtenez l'aide de plus de 48,000 utilisateurs de la communauté UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4858,20 +4858,20 @@ msgstr "Ignorer" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Créez gratuitement un compte Ultimaker" +msgid "Create a free UltiMaker Account" +msgstr "Créez gratuitement un compte UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Aidez-nous à améliorer Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "Aidez-nous à améliorer UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura recueille des données anonymes pour améliorer la qualité d'impression et l'expérience utilisateur, notamment :" +msgstr "UltiMaker Cura recueille des données anonymes pour améliorer la qualité d'impression et l'expérience utilisateur, notamment :" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4897,7 +4897,7 @@ msgstr "Paramètres d'impression" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Les données recueillies par Ultimaker Cura ne contiendront aucun renseignement personnel." +msgstr "Les données recueillies par UltiMaker Cura ne contiendront aucun renseignement personnel." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4967,8 +4967,8 @@ msgstr "Impossible de se connecter à l'appareil." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Impossible de vous connecter à votre imprimante Ultimaker ?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "Impossible de vous connecter à votre imprimante UltiMaker ?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4989,8 +4989,8 @@ msgstr "Se connecter" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Bienvenue dans Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Bienvenue dans UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" @@ -5890,8 +5890,8 @@ msgstr "Mes imprimantes" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Surveillez les imprimantes dans Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Surveillez les imprimantes dans UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5910,23 +5910,23 @@ msgstr "Surveillez les tâches d'impression et réimprimez à partir de votre hi #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Étendez Ultimaker Cura avec des plugins et des profils de matériaux." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Étendez UltiMaker Cura avec des plugins et des profils de matériaux." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Devenez un expert de l'impression 3D avec les cours de formation en ligne Ultimaker." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Devenez un expert de l'impression 3D avec les cours de formation en ligne UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Assistance ultimaker" +msgid "UltiMaker support" +msgstr "Assistance UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Découvrez comment utiliser Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Découvrez comment utiliser UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5935,8 +5935,8 @@ msgstr "Posez une question" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Consultez la communauté Ultimaker." +msgid "Consult the UltiMaker Community." +msgstr "Consultez la communauté UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5950,8 +5950,8 @@ msgstr "Informez les développeurs en cas de problème." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Visitez le site web Ultimaker." +msgid "Visit the UltiMaker website." +msgstr "Visitez le site web UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6280,8 +6280,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Créez gratuitement un compte Ultimaker" +msgid "Create a free UltiMaker account" +msgstr "Créez gratuitement un compte UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6295,8 +6295,8 @@ msgstr "Dernière mise à jour : %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Compte Ultimaker" +msgid "UltiMaker Account" +msgstr "Compte UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6340,7 +6340,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Cette imprimante n'est pas associée à votre compte. Veuillez visiter l'Ultimaker Digital Factory pour établir une connexion." +msgstr "Cette imprimante n'est pas associée à votre compte. Veuillez visiter l'UltiMaker Digital Factory pour établir une connexion." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6520,13 +6520,13 @@ msgstr "Post-traitement" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Gère les connexions réseau vers les imprimantes Ultimaker en réseau." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Gère les connexions réseau vers les imprimantes UltiMaker en réseau." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Connexion réseau Ultimaker" +msgid "UltiMaker Network Connection" +msgstr "Connexion réseau UltiMaker" #: /3MFWriter/plugin.json msgctxt "description" @@ -6560,8 +6560,8 @@ msgstr "Information sur le découpage" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Permet l'écriture de fichiers Ultimaker Format Package." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Permet l'écriture de fichiers UltiMaker Format Package." #: /UFPWriter/plugin.json msgctxt "name" @@ -6577,8 +6577,8 @@ msgstr "Se connecte à la Digital Library, permettant à Cura d'ouvrir des fichi #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6615,12 +6615,12 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Fournit les actions de la machine pour les machines Ultimaker (telles que l'assistant de calibration du plateau, sélection des mises à niveau, etc.)" +msgstr "Fournit les actions de la machine pour les machines UltiMaker (telles que l'assistant de calibration du plateau, sélection des mises à niveau, etc.)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Actions de la machine Ultimaker" +msgid "UltiMaker machine actions" +msgstr "Actions de la machine UltiMaker" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6637,7 +6637,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "Gère les extensions de l'application et permet de parcourir les extensions à partir du site Web Ultimaker." +msgstr "Gère les extensions de l'application et permet de parcourir les extensions à partir du site Web UltiMaker." #: /Marketplace/plugin.json msgctxt "name" @@ -6989,8 +6989,8 @@ msgstr "Générateur de G-Code" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Fournit un support pour la lecture des paquets de format Ultimaker." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Fournit un support pour la lecture des paquets de format UltiMaker." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/hu_HU/cura.po b/resources/i18n/hu_HU/cura.po index 5f65321e2d..a750481076 100644 --- a/resources/i18n/hu_HU/cura.po +++ b/resources/i18n/hu_HU/cura.po @@ -423,8 +423,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Az Ultimaker fiókkiszolgáló elérhetetlen." +msgid "Unable to reach the UltiMaker account server." +msgstr "Az UltiMaker fiókkiszolgáló elérhetetlen." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -700,8 +700,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Hibajelentés küldése az Ultimaker -nek" +msgid "Send crash report to UltiMaker" +msgstr "Hibajelentés küldése az UltiMaker -nek" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -901,7 +901,7 @@ msgstr "Hálózati hiba" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "" msgstr[1] "" @@ -1021,7 +1021,7 @@ msgstr[1] "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 @@ -1049,8 +1049,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" -msgid "You are attempting to connect to a printer that is not running Ultimaker Connect. Please update the printer to the latest firmware." -msgstr "Olyan nyomtatóval próbál csatlakozni, amelyen nem fut az Ultimaker Connect. Kérjük, frissítse a nyomtatón a firmware-t." +msgid "You are attempting to connect to a printer that is not running UltiMaker Connect. Please update the printer to the latest firmware." +msgstr "Olyan nyomtatóval próbál csatlakozni, amelyen nem fut az UltiMaker Connect. Kérjük, frissítse a nyomtatón a firmware-t." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1164,7 +1164,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 @@ -1273,8 +1273,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimaker formátumcsomag" +msgid "UltiMaker Format Package" +msgstr "UltiMaker formátumcsomag" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1395,7 +1395,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" +msgid "Changes detected from your UltiMaker account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 @@ -1556,7 +1556,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." +msgid "Report a bug on UltiMaker Cura's issue tracker." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 @@ -1682,7 +1682,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723 #, python-brace-format msgctxt "@info:error Don't translate the XML tag !" -msgid "Project file {0} is made using profiles that are unknown to this version of Ultimaker Cura." +msgid "Project file {0} is made using profiles that are unknown to this version of UltiMaker Cura." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2326,7 +2326,7 @@ msgstr "A távoli nyomtatásisor kezeléshez kérjük frissítse a firmware-t." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2393,7 +2393,7 @@ msgstr "Az első elérhető" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -2692,8 +2692,8 @@ msgstr "További információ a névtelen adatgyűjtésről" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" -msgid "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" -msgstr "Az Ultimaker Cura névtelen adatokat gyűjt a nyomtatási minőség és a felhasználói élmény javítása érdekében. Az alábbiakban található egy példa az összes megosztott adatra:" +msgid "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" +msgstr "Az UltiMaker Cura névtelen adatokat gyűjt a nyomtatási minőség és a felhasználói élmény javítása érdekében. Az alábbiakban található egy példa az összes megosztott adatra:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2717,8 +2717,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Kérjük, válassza ki az Ultimaker Original eredeti frissítéseit" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Kérjük, válassza ki az UltiMaker Original eredeti frissítéseit" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2813,7 +2813,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" -msgid "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users." +msgid "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 @@ -2872,7 +2872,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" -msgid "Select and install material profiles optimised for your Ultimaker 3D printers." +msgid "Select and install material profiles optimised for your UltiMaker 3D printers." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 @@ -2994,17 +2994,17 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" +msgid "UltiMaker Verified Plug-in" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" +msgid "UltiMaker Certified Material" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" +msgid "UltiMaker Verified Package" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 @@ -3014,7 +3014,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" -msgid "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." +msgid "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4283,8 +4283,8 @@ msgstr "Magán" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "Elküldjük a nyomtatott adatokat név nélkül az Ultimaker-nek?Semmilyen személyes infromáció, IP cím vagy azonosító nem kerül elküldésre." +msgid "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "Elküldjük a nyomtatott adatokat név nélkül az UltiMaker-nek?Semmilyen személyes infromáció, IP cím vagy azonosító nem kerül elküldésre." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4597,7 +4597,7 @@ msgstr "Hibaelhárítás" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" +msgid "Sign in to the UltiMaker platform" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 @@ -4612,7 +4612,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 @@ -4622,18 +4622,18 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" +msgid "Create a free UltiMaker Account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Segítsen nekünk az Ultimaker Cura fejlesztésében" +msgid "Help us to improve UltiMaker Cura" +msgstr "Segítsen nekünk az UltiMaker Cura fejlesztésében" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" -msgid "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:" -msgstr "Az Ultimaker Cura névtelen adatokat gyűjt a nyomtatási minőség és a felhasználói élmény javításának érdekében, ideértve:" +msgid "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:" +msgstr "Az UltiMaker Cura névtelen adatokat gyűjt a nyomtatási minőség és a felhasználói élmény javításának érdekében, ideértve:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4657,8 +4657,8 @@ msgstr "Nyomtatási beállítások" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" -msgid "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Az Ultimaker Cura által gyűjtött adatok nem tartalmaznak személyes információt." +msgid "Data collected by UltiMaker Cura will not contain any personal information." +msgstr "Az UltiMaker Cura által gyűjtött adatok nem tartalmaznak személyes információt." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4728,7 +4728,7 @@ msgstr "Nem sikerült csatlakozni az eszközhöz." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" +msgid "Can't connect to your UltiMaker printer?" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 @@ -4748,12 +4748,12 @@ msgstr "Csatlakozás" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Üdvözöljük az Ultimaker Cura-ban" +msgid "Welcome to UltiMaker Cura" +msgstr "Üdvözöljük az UltiMaker Cura-ban" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" -msgid "Please follow these steps to set up Ultimaker Cura. This will only take a few moments." +msgid "Please follow these steps to set up UltiMaker Cura. This will only take a few moments." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 @@ -5438,7 +5438,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "A Cura-t az Ultimaker B.V fejlesztette ki a közösséggel együttműködésben. A Cura büszkén használja a következő nyílt forráskódú projekteket:" +msgstr "A Cura-t az UltiMaker B.V fejlesztette ki a közösséggel együttműködésben. A Cura büszkén használja a következő nyílt forráskódú projekteket:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5623,7 +5623,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 @@ -5643,22 +5643,22 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." +msgid "Extend UltiMaker Cura with plugins and material profiles." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." +msgid "Become a 3D printing expert with UltiMaker e-learning." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" +msgid "UltiMaker support" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 @@ -5668,7 +5668,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." +msgid "Consult the UltiMaker Community." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 @@ -5683,7 +5683,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." +msgid "Visit the UltiMaker website." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 @@ -5977,7 +5977,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" +msgid "Create a free UltiMaker account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 @@ -5992,7 +5992,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" +msgid "UltiMaker Account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 @@ -6032,7 +6032,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." +msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 @@ -6207,13 +6207,13 @@ msgstr "Utólagos feldolgozás" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Kezeli a hálózati csatlakozásokat az Ultimaker hálózati nyomtatókhoz." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Kezeli a hálózati csatlakozásokat az UltiMaker hálózati nyomtatókhoz." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ultimaker hálózati kapcsolat" +msgid "UltiMaker Network Connection" +msgstr "UltiMaker hálózati kapcsolat" #: /3MFWriter/plugin.json msgctxt "description" @@ -6247,8 +6247,8 @@ msgstr "Szeletelési infó" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Támogatást nyújt az Ultimaker formátumú csomagok írásához." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Támogatást nyújt az UltiMaker formátumú csomagok írásához." #: /UFPWriter/plugin.json msgctxt "name" @@ -6262,7 +6262,7 @@ msgstr "" #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" msgstr "" #: /GCodeProfileReader/plugin.json @@ -6297,13 +6297,13 @@ msgstr "Trimesh olvasó" #: /UltimakerMachineActions/plugin.json msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." -msgstr "Gépi funkciók biztosítása az Ultimaker nyomtatók számára.(pl.: ágyszintezés varázsló, frissítések kiválasztása.)" +msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc.)." +msgstr "Gépi funkciók biztosítása az UltiMaker nyomtatók számára.(pl.: ágyszintezés varázsló, frissítések kiválasztása.)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ultimaker gépi funkciók" +msgid "UltiMaker machine actions" +msgstr "UltiMaker gépi funkciók" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6317,7 +6317,7 @@ msgstr "Tömörített G-kód olvasó" #: /Marketplace/plugin.json msgctxt "description" -msgid "Manages extensions to the application and allows browsing extensions from the Ultimaker website." +msgid "Manages extensions to the application and allows browsing extensions from the UltiMaker website." msgstr "" #: /Marketplace/plugin.json @@ -6667,8 +6667,8 @@ msgstr "G-kódot író" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Támogatást nyújt az Ultimaker formátumú csomagok olvasásához." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Támogatást nyújt az UltiMaker formátumú csomagok olvasásához." #: /UFPReader/plugin.json msgctxt "name" @@ -7036,8 +7036,8 @@ msgstr "Előkészítés nézet" #~ msgstr "Szimulációs nézetet biztosít." #~ msgctxt "@info:status" -#~ msgid "Send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "Küldjön és felügyeljen nyomtatási feladatokat bárhonnan az Ultimaker fiókjával." +#~ msgid "Send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "Küldjön és felügyeljen nyomtatási feladatokat bárhonnan az UltiMaker fiókjával." #~ msgctxt "@info:title The %s gets replaced with the printer name." #~ msgid "New %s firmware available" @@ -7082,8 +7082,8 @@ msgstr "Előkészítés nézet" #~ "az Ultimaker Cura beállításához. Pár pillanat az egész." #~ msgctxt "@label" -#~ msgid "What's new in Ultimaker Cura" -#~ msgstr "Újdonságok az Ultimaker Cura-ban" +#~ msgid "What's new in UltiMaker Cura" +#~ msgstr "Újdonságok az UltiMaker Cura-ban" #~ msgctxt "@info:status" #~ msgid "The selected model was too small to load." @@ -7130,8 +7130,8 @@ msgstr "Előkészítés nézet" #~ msgstr "Csatlakozás felhőn keresztül" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "Csatlakozás az Ultimaker felhőhöz" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "Csatlakozás az UltiMaker felhőhöz" #~ msgctxt "@label" #~ msgid "You need to install the package before you can rate" @@ -7158,8 +7158,8 @@ msgstr "Előkészítés nézet" #~ msgstr "Szia %1" #~ msgctxt "@button" -#~ msgid "Ultimaker account" -#~ msgstr "Ultimaker fiók" +#~ msgid "UltiMaker account" +#~ msgstr "UltiMaker fiók" #~ msgctxt "@button" #~ msgid "Sign out" @@ -7343,8 +7343,8 @@ msgstr "Előkészítés nézet" #~ msgstr "Ellenőrző lista" #~ msgctxt "@label" -#~ msgid "Please select any upgrades made to this Ultimaker 2." -#~ msgstr "Kérjük, válassza ki az Ultimaker 2 frissítéseit." +#~ msgid "Please select any upgrades made to this UltiMaker 2." +#~ msgstr "Kérjük, válassza ki az UltiMaker 2 frissítéseit." #~ msgctxt "@label" #~ msgid "Olsson Block" @@ -7421,8 +7421,8 @@ msgstr "Előkészítés nézet" #~ "- Exklúzív hozzáférés a vezető nyomtató márkák nyomtatási profiljaikhoz" #~ msgctxt "@title:window" -#~ msgid "Ultimaker Cura" -#~ msgstr "Ultimaker Cura" +#~ msgid "UltiMaker Cura" +#~ msgstr "UltiMaker Cura" #~ msgctxt "@title:window" #~ msgid "Closing Cura" @@ -7441,20 +7441,20 @@ msgstr "Előkészítés nézet" #~ msgstr "Tárgyasztal" #~ msgctxt "@label" -#~ msgid "Ultimaker Cloud" -#~ msgstr "Ultimaker felhő" +#~ msgid "UltiMaker Cloud" +#~ msgstr "UltiMaker felhő" #~ msgctxt "@text" #~ msgid "The next generation 3D printing workflow" #~ msgstr "Következő generációs 3D nyomtatási munkafolyamat" #~ msgctxt "@text" -#~ msgid "- Send print jobs to Ultimaker printers outside your local network" -#~ msgstr "- Küldjön nyomtatási feladatokat az Ultimaker nyomtatóknak a helyi hálózaton kívülről" +#~ msgid "- Send print jobs to UltiMaker printers outside your local network" +#~ msgstr "- Küldjön nyomtatási feladatokat az UltiMaker nyomtatóknak a helyi hálózaton kívülről" #~ msgctxt "@text" -#~ msgid "- Store your Ultimaker Cura settings in the cloud for use anywhere" -#~ msgstr "- Tárolja az Ultimaker Cura beállításait a felhőben így azok bárhol használhatóak" +#~ msgid "- Store your UltiMaker Cura settings in the cloud for use anywhere" +#~ msgstr "- Tárolja az UltiMaker Cura beállításait a felhőben így azok bárhol használhatóak" #~ msgctxt "@text" #~ msgid "- Get exclusive access to print profiles from leading brands" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index 9a8d4055d3..7ac562c9d1 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -443,8 +443,8 @@ msgstr "Impossibile avviare un nuovo processo di accesso. Verificare se è ancor #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Impossibile raggiungere il server account Ultimaker." +msgid "Unable to reach the UltiMaker account server." +msgstr "Impossibile raggiungere il server account UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -732,15 +732,15 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    Oops, Ultimaker Cura ha rilevato qualcosa che non sembra corretto.

    \n

    Abbiamo riscontrato un errore irrecuperabile durante" +msgstr "

    Oops, UltiMaker Cura ha rilevato qualcosa che non sembra corretto.

    \n

    Abbiamo riscontrato un errore irrecuperabile durante" " l’avvio. È stato probabilmente causato da alcuni file di configurazione errati. Suggeriamo di effettuare il backup e ripristinare la configurazione.

    \n" "

    I backup sono contenuti nella cartella configurazione.

    \n

    Si prega di inviare questo Rapporto su crash" " per correggere il problema.

    \n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Inviare il rapporto su crash a Ultimaker" +msgid "Send crash report to UltiMaker" +msgstr "Inviare il rapporto su crash a UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -940,7 +940,7 @@ msgstr "Errore di rete" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Nuova stampante rilevata dall'account Ultimaker" msgstr[1] "Nuove stampanti rilevate dall'account Ultimaker" @@ -1067,8 +1067,8 @@ msgstr[1] "Queste stampanti non sono collegate a Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1098,7 +1098,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Si sta tentando di connettersi a una stampante che non esegue Ultimaker Connect. Aggiornare la stampante con il firmware più recente." +msgstr "Si sta tentando di connettersi a una stampante che non esegue UltiMaker Connect. Aggiornare la stampante con il firmware più recente." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1215,8 +1215,8 @@ msgstr "Monitora stampa" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Traccia la stampa in Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Traccia la stampa in UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1326,8 +1326,8 @@ msgstr "Impossibile scrivere nel file UFP:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Pacchetto formato Ultimaker" +msgid "UltiMaker Format Package" +msgstr "Pacchetto formato UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1451,8 +1451,8 @@ msgstr "Desiderate sincronizzare pacchetti materiale e software con il vostro ac #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Modifiche rilevate dal tuo account Ultimaker" +msgid "Changes detected from your UltiMaker account" +msgstr "Modifiche rilevate dal tuo account UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1614,8 +1614,8 @@ msgstr "Segnala un errore" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Segnalare un errore nel registro problemi di Ultimaker Cura." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Segnalare un errore nel registro problemi di UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1764,7 +1764,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "Il file di progetto {0} è realizzato con profili sconosciuti a questa versione di Ultimaker Cura." +msgstr "Il file di progetto {0} è realizzato con profili sconosciuti a questa versione di UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2440,7 +2440,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Impossibile visualizzare feed della Webcam per stampanti cloud da Ultimaker Cura. Fare clic su \"Gestione stampanti\" per visitare Ultimaker Digital Factory" +msgstr "Impossibile visualizzare feed della Webcam per stampanti cloud da UltiMaker Cura. Fare clic su \"Gestione stampanti\" per visitare Ultimaker Digital Factory" " e visualizzare questa Webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2507,8 +2507,8 @@ msgstr "Primo disponibile" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Monitora le tue stampanti ovunque con Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Monitora le tue stampanti ovunque con UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2824,7 +2824,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura acquisisce dati anonimi per migliorare la qualità di stampa e l'esperienza dell'utente. Di seguito è riportato un esempio dei dati condivisi:" +msgstr "UltiMaker Cura acquisisce dati anonimi per migliorare la qualità di stampa e l'esperienza dell'utente. Di seguito è riportato un esempio dei dati condivisi:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2848,8 +2848,8 @@ msgstr "Salva progetto Cura" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Seleziona qualsiasi aggiornamento realizzato per questa Ultimaker Original" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Seleziona qualsiasi aggiornamento realizzato per questa UltiMaker Original" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2955,7 +2955,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Semplifica il flusso di lavoro e personalizza l'esperienza Ultimaker Cura experience con plugin forniti dalla nostra eccezionale comunità di utenti." +msgstr "Semplifica il flusso di lavoro e personalizza l'esperienza UltiMaker Cura experience con plugin forniti dalla nostra eccezionale comunità di utenti." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -3018,7 +3018,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Selezionare e installare i profili dei materiali ottimizzati per le stampanti 3D Ultimaker." +msgstr "Selezionare e installare i profili dei materiali ottimizzati per le stampanti 3D UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3139,18 +3139,18 @@ msgstr "Carica altro" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Plug-in verificato Ultimaker" +msgid "UltiMaker Verified Plug-in" +msgstr "Plug-in verificato UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Materiale certificato Ultimaker" +msgid "UltiMaker Certified Material" +msgstr "Materiale certificato UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Pacchetto verificato Ultimaker" +msgid "UltiMaker Verified Package" +msgstr "Pacchetto verificato UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3162,7 +3162,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Gestisci i plugin Ultimaker Cura e i profili del materiale qui. Accertarsi di mantenere i plugin aggiornati e di eseguire regolarmente il backup dell'impostazione." +msgstr "Gestisci i plugin UltiMaker Cura e i profili del materiale qui. Accertarsi di mantenere i plugin aggiornati e di eseguire regolarmente il backup dell'impostazione." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" @@ -4487,7 +4487,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "I dati anonimi sulla stampa devono essere inviati a Ultimaker? Nota, non sono trasmessi o memorizzati modelli, indirizzi IP o altre informazioni personali." +msgstr "I dati anonimi sulla stampa devono essere inviati a UltiMaker? Nota, non sono trasmessi o memorizzati modelli, indirizzi IP o altre informazioni personali." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4804,8 +4804,8 @@ msgstr "Ricerca e riparazione dei guasti" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Accedi alla piattaforma Ultimaker" +msgid "Sign in to the UltiMaker platform" +msgstr "Accedi alla piattaforma UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4819,8 +4819,8 @@ msgstr "Esegui il backup e la sincronizzazione delle impostazioni materiale e de #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Condividi idee e ottieni supporto da più di 48.000 utenti nella community di Ultimaker" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Condividi idee e ottieni supporto da più di 48.000 utenti nella community di UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4829,20 +4829,20 @@ msgstr "Salta" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Crea un account Ultimaker gratuito" +msgid "Create a free UltiMaker Account" +msgstr "Crea un account UltiMaker gratuito" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Aiutaci a migliorare Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "Aiutaci a migliorare UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura acquisisce dati anonimi per migliorare la qualità di stampa e l'esperienza dell'utente, tra cui:" +msgstr "UltiMaker Cura acquisisce dati anonimi per migliorare la qualità di stampa e l'esperienza dell'utente, tra cui:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4868,7 +4868,7 @@ msgstr "Impostazioni di stampa" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "I dati acquisiti da Ultimaker Cura non conterranno alcuna informazione personale." +msgstr "I dati acquisiti da UltiMaker Cura non conterranno alcuna informazione personale." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4938,8 +4938,8 @@ msgstr "Impossibile connettersi al dispositivo." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Non è possibile effettuare la connessione alla stampante Ultimaker?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "Non è possibile effettuare la connessione alla stampante UltiMaker?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4960,15 +4960,15 @@ msgstr "Collega" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Benvenuto in Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Benvenuto in UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Segui questa procedura per configurare\nUltimaker Cura. Questa operazione richiederà solo pochi istanti." +msgstr "Segui questa procedura per configurare\nUltiMaker Cura. Questa operazione richiederà solo pochi istanti." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5668,7 +5668,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura è stato sviluppato da Ultimaker B.V. in cooperazione con la comunità.\nCura è orgogliosa di utilizzare i seguenti progetti open source:" +msgstr "Cura è stato sviluppato da UltiMaker B.V. in cooperazione con la comunità.\nCura è orgogliosa di utilizzare i seguenti progetti open source:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5853,8 +5853,8 @@ msgstr "Le mie stampanti" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Monitora le stampanti in Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Monitora le stampanti in UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5873,23 +5873,23 @@ msgstr "Monitora i processi di stampa dalla cronologia di stampa." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Estendi Ultimaker Cura con plugin e profili del materiale." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Estendi UltiMaker Cura con plugin e profili del materiale." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Diventa un esperto di stampa 3D con e-learning Ultimaker." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Diventa un esperto di stampa 3D con e-learning UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Supporto Ultimaker" +msgid "UltiMaker support" +msgstr "Supporto UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Scopri come iniziare a utilizzare Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Scopri come iniziare a utilizzare UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5898,8 +5898,8 @@ msgstr "Fai una domanda" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Consulta la community di Ultimaker." +msgid "Consult the UltiMaker Community." +msgstr "Consulta la community di UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5913,8 +5913,8 @@ msgstr "Informa gli sviluppatori che si è verificato un errore." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Visita il sito Web Ultimaker." +msgid "Visit the UltiMaker website." +msgstr "Visita il sito Web UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6232,8 +6232,8 @@ msgstr "- Aggiungi profili materiale e plugin dal Marketplace\n- Esegui il backu #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Crea un account Ultimaker gratuito" +msgid "Create a free UltiMaker account" +msgstr "Crea un account UltiMaker gratuito" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6247,8 +6247,8 @@ msgstr "Ultimo aggiornamento: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Account Ultimaker" +msgid "UltiMaker Account" +msgstr "Account UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6292,7 +6292,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Questa stampante non è collegata al tuo account. Visitare Ultimaker Digital Factory per stabilire una connessione." +msgstr "Questa stampante non è collegata al tuo account. Visitare UltiMaker Digital Factory per stabilire una connessione." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6472,13 +6472,13 @@ msgstr "Post-elaborazione" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Gestisce le connessioni di rete alle stampanti Ultimaker in rete." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Gestisce le connessioni di rete alle stampanti UltiMaker in rete." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Connessione di rete Ultimaker" +msgid "UltiMaker Network Connection" +msgstr "Connessione di rete UltiMaker" #: /3MFWriter/plugin.json msgctxt "description" @@ -6512,8 +6512,8 @@ msgstr "Informazioni su sezionamento" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Fornisce il supporto per la scrittura di pacchetti formato Ultimaker." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Fornisce il supporto per la scrittura di pacchetti formato UltiMaker." #: /UFPWriter/plugin.json msgctxt "name" @@ -6529,8 +6529,8 @@ msgstr "Si collega alla Digital Library, consentendo a Cura di aprire file e sal #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6567,12 +6567,12 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Fornisce azioni macchina per le macchine Ultimaker (come la procedura guidata di livellamento del piano di stampa, la selezione degli aggiornamenti, ecc.)" +msgstr "Fornisce azioni macchina per le macchine UltiMaker (come la procedura guidata di livellamento del piano di stampa, la selezione degli aggiornamenti, ecc.)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Azioni della macchina Ultimaker" +msgid "UltiMaker machine actions" +msgstr "Azioni della macchina UltiMaker" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6589,7 +6589,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "Gestisce le estensioni per l'applicazione e consente di ricercare le estensioni nel sito Web Ultimaker." +msgstr "Gestisce le estensioni per l'applicazione e consente di ricercare le estensioni nel sito Web UltiMaker." #: /Marketplace/plugin.json msgctxt "name" @@ -6941,8 +6941,8 @@ msgstr "Writer codice G" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Fornisce il supporto per la lettura di pacchetti formato Ultimaker." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Fornisce il supporto per la lettura di pacchetti formato UltiMaker." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po index 6bea632653..0b54860834 100644 --- a/resources/i18n/ja_JP/cura.po +++ b/resources/i18n/ja_JP/cura.po @@ -442,8 +442,8 @@ msgstr "新しいサインインプロセスを開始できません。別のサ #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Ultimaker アカウントサーバーに到達できません。" +msgid "Unable to reach the UltiMaker account server." +msgstr "UltiMaker アカウントサーバーに到達できません。" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -728,13 +728,13 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    申し訳ありません。Ultimaker Cura で何らかの不具合が生じています。

    \n

    開始時に回復不能のエラーが発生しました。不適切なファイル設定が原因の可能性があります。バックアップを実行してからリセットしてください。

    \n" +msgstr "

    申し訳ありません。UltiMaker Cura で何らかの不具合が生じています。

    \n

    開始時に回復不能のエラーが発生しました。不適切なファイル設定が原因の可能性があります。バックアップを実行してからリセットしてください。

    \n" "

    バックアップは、設定フォルダに保存されます。

    \n

    問題解決のために、このクラッシュ報告をお送りください。

    \n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "クラッシュ報告をUltimakerに送信する" +msgid "Send crash report to UltiMaker" +msgstr "クラッシュ報告をUltiMakerに送信する" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -933,7 +933,7 @@ msgstr "ネットワークエラー" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Ultimakerアカウントから新しいプリンターが検出されました" @@ -1057,8 +1057,8 @@ msgstr[0] "これらのプリンターはDigital Factoryとリンクされてい #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1087,7 +1087,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Ultimaker Connectを実行していないプリンターに接続しようとしています。プリンターを最新のファームウェアに更新してください。" +msgstr "UltiMaker Connectを実行していないプリンターに接続しようとしています。プリンターを最新のファームウェアに更新してください。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1203,8 +1203,8 @@ msgstr "プリントをモニタリング" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factoryでプリントを追跡" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factoryでプリントを追跡" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1314,8 +1314,8 @@ msgstr "UFPファイルに書き込めません:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimakerフォーマットパッケージ" +msgid "UltiMaker Format Package" +msgstr "UltiMakerフォーマットパッケージ" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1438,8 +1438,8 @@ msgstr "材料パッケージとソフトウェアパッケージをアカウン #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Ultimakerアカウントから変更が検出されました" +msgid "Changes detected from your UltiMaker account" +msgstr "UltiMakerアカウントから変更が検出されました" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1601,8 +1601,8 @@ msgstr "バグを報告" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Ultimaker Curaの問題追跡ツールでバグを報告してください。" +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "UltiMaker Curaの問題追跡ツールでバグを報告してください。" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1748,7 +1748,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "プロジェクトファイル{0}はこのバージョンのUltimaker Curaでは認識できないプロファイルを使用して作成されています。" +msgstr "プロジェクトファイル{0}はこのバージョンのUltiMaker Curaでは認識できないプロファイルを使用して作成されています。" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -1776,7 +1776,7 @@ msgid "" "p>\n" "

    View print quality " "guide

    " -msgstr "

    モデルのサイズまたは材料の設定によっては、適切に印刷しない3Dモデルがあります。:

    \n

    {model_names}

    \n

    可能な限り最高の品質および信頼性を得る方法をご覧ください。

    \n

    印字品質ガイドを見る

    " +msgstr "

    モデルのサイズまたは材料の設定によっては、適切に印刷しない3Dモデルがあります。:

    \n

    {model_names}

    \n

    可能な限り最高の品質および信頼性を得る方法をご覧ください。

    \n

    印字品質ガイドを見る

    " #: /Users/c.lamboo/ultimaker/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:42 msgctxt "@item:inmenu" @@ -2415,7 +2415,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "クラウドプリンターのウェブカムフィードをUltimaker Curaから見ることができません。「プリンター管理」をクリックして、Ultimaker Digital Factoryにアクセスし、このウェブカムを見ます。" +msgstr "クラウドプリンターのウェブカムフィードをUltiMaker Curaから見ることができません。「プリンター管理」をクリックして、Ultimaker Digital Factoryにアクセスし、このウェブカムを見ます。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2481,8 +2481,8 @@ msgstr "次の空き" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factoryを使用して、あらゆる場所から自分のプリンターをモニタリング" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factoryを使用して、あらゆる場所から自分のプリンターをモニタリング" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2796,7 +2796,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura は、印刷品質とユーザーエクスペリエンスを向上させるために匿名データを収集します。以下は、共有されるすべてのデータの例です:" +msgstr "UltiMaker Cura は、印刷品質とユーザーエクスペリエンスを向上させるために匿名データを収集します。以下は、共有されるすべてのデータの例です:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2820,8 +2820,8 @@ msgstr "Curaプロジェクトを保存する" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "このUltimaker Originalに施されたアップグレートを選択する" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "このUltiMaker Originalに施されたアップグレートを選択する" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2925,7 +2925,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "素晴らしいユーザーコミュニティから提供されるプラグインを活用して、ワークフローを合理化し、Ultimaker Cura体験をカスタマイズすることができます。" +msgstr "素晴らしいユーザーコミュニティから提供されるプラグインを活用して、ワークフローを合理化し、UltiMaker Cura体験をカスタマイズすることができます。" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -2988,7 +2988,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Ultimaker 3Dプリンターに最適な材料プロファイルを選択してインストールします。" +msgstr "UltiMaker 3Dプリンターに最適な材料プロファイルを選択してインストールします。" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3109,18 +3109,18 @@ msgstr "さらに読み込む" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Ultimaker検証済みプラグイン" +msgid "UltiMaker Verified Plug-in" +msgstr "UltiMaker検証済みプラグイン" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Ultimaker認定材料" +msgid "UltiMaker Certified Material" +msgstr "UltiMaker認定材料" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Ultimaker検証済みパッケージ" +msgid "UltiMaker Verified Package" +msgstr "UltiMaker検証済みパッケージ" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3132,7 +3132,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Ultimaker Curaのプラグインと材料プロファイルはここで管理します。プラグインを常に最新の状態に保ち、セットアップのバックアップを定期的に取るようにしてください。" +msgstr "UltiMaker Curaのプラグインと材料プロファイルはここで管理します。プラグインを常に最新の状態に保ち、セットアップのバックアップを定期的に取るようにしてください。" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" @@ -4450,7 +4450,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "プリンターの不明なデータをUltimakerにおくりますか?メモ、モデル、IPアドレス、個人的な情報は送信されたり保存されたりはしません。" +msgstr "プリンターの不明なデータをUltiMakerにおくりますか?メモ、モデル、IPアドレス、個人的な情報は送信されたり保存されたりはしません。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4766,8 +4766,8 @@ msgstr "トラブルシューティング" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Ultimakerのプラットフォームにサインイン" +msgid "Sign in to the UltiMaker platform" +msgstr "UltiMakerのプラットフォームにサインイン" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4781,8 +4781,8 @@ msgstr "材料設定とプラグインのバックアップと同期" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Ultimakerコミュニティで48,000人以上のユーザーとアイデアを共有してアドバイスをもらう" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "UltiMakerコミュニティで48,000人以上のユーザーとアイデアを共有してアドバイスをもらう" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4791,20 +4791,20 @@ msgstr "スキップ" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "無料のUltimakerアカウントを作成" +msgid "Create a free UltiMaker Account" +msgstr "無料のUltiMakerアカウントを作成" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Ultimaker Cura の改善にご協力ください" +msgid "Help us to improve UltiMaker Cura" +msgstr "UltiMaker Cura の改善にご協力ください" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura は、印刷品質とユーザーエクスペリエンスを向上させるために以下の匿名データを収集します:" +msgstr "UltiMaker Cura は、印刷品質とユーザーエクスペリエンスを向上させるために以下の匿名データを収集します:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4830,7 +4830,7 @@ msgstr "プリント設定" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Ultimaker Cura が収集したデータには個人データは含まれません。" +msgstr "UltiMaker Cura が収集したデータには個人データは含まれません。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4900,8 +4900,8 @@ msgstr "デバイスに接続できません。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Ultimakerプリンターに接続できませんか?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "UltiMakerプリンターに接続できませんか?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4922,15 +4922,15 @@ msgstr "接続" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Ultimaker Cura にようこそ" +msgid "Welcome to UltiMaker Cura" +msgstr "UltiMaker Cura にようこそ" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "以下の手順で\nUltimaker Cura を設定してください。数秒で完了します。" +msgstr "以下の手順で\nUltiMaker Cura を設定してください。数秒で完了します。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5625,7 +5625,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "CuraはUltimakerB.Vのコミュニティの協力によって開発され、Curaはオープンソースで使えることを誇りに思います:" +msgstr "CuraはUltiMakerB.Vのコミュニティの協力によって開発され、Curaはオープンソースで使えることを誇りに思います:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5810,8 +5810,8 @@ msgstr "マイプリンター" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Ultimaker Digital Factoryでプリンターをモニタリングします。" +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "UltiMaker Digital Factoryでプリンターをモニタリングします。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5830,23 +5830,23 @@ msgstr "プリントジョブをモニタリングしてプリント履歴から #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Ultimaker Curaをプラグインと材料プロファイルで拡張します。" +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "UltiMaker Curaをプラグインと材料プロファイルで拡張します。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Ultimaker eラーニングで3Dプリンティングのエキスパートになります。" +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "UltiMaker eラーニングで3Dプリンティングのエキスパートになります。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Ultimakerのサポート" +msgid "UltiMaker support" +msgstr "UltiMakerのサポート" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Ultimaker Curaの使用を開始する方法を確認します。" +msgid "Learn how to get started with UltiMaker Cura." +msgstr "UltiMaker Curaの使用を開始する方法を確認します。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5855,8 +5855,8 @@ msgstr "質問をする" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Ultimaker Communityをご参照ください。" +msgid "Consult the UltiMaker Community." +msgstr "UltiMaker Communityをご参照ください。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5870,8 +5870,8 @@ msgstr "問題が発生していることを開発者にお知らせください #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Ultimakerウェブサイトをご確認ください。" +msgid "Visit the UltiMaker website." +msgstr "UltiMakerウェブサイトをご確認ください。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6180,12 +6180,12 @@ msgid "" "- Add material profiles and plug-ins from the Marketplace\n" "- Back-up and sync your material profiles and plug-ins\n" "- Share ideas and get help from 48,000+ users in the Ultimaker community" -msgstr "- マーケットプレースから材料プロファイルとプラグインを追加\n- 材料プロファイルとプラグインのバックアップと同期\n- Ultimakerコミュニティで48,000人以上のユーザーとアイデアを共有してアドバイスをもらう" +msgstr "- マーケットプレースから材料プロファイルとプラグインを追加\n- 材料プロファイルとプラグインのバックアップと同期\n- UltiMakerコミュニティで48,000人以上のユーザーとアイデアを共有してアドバイスをもらう" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "無料のUltimakerアカウントを作成" +msgid "Create a free UltiMaker account" +msgstr "無料のUltiMakerアカウントを作成" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6199,8 +6199,8 @@ msgstr "最終更新:%1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Ultimakerアカウント" +msgid "UltiMaker Account" +msgstr "UltiMakerアカウント" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6244,7 +6244,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "このプリンターはお使いのアカウントにリンクされていません。Ultimaker Digital Factoryにアクセスして接続を確立してください。" +msgstr "このプリンターはお使いのアカウントにリンクされていません。UltiMaker Digital Factoryにアクセスして接続を確立してください。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6424,13 +6424,13 @@ msgstr "後処理" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Ultimakerのネットワーク接属できるプリンターのネットワーク接続を管理します。" +msgid "Manages network connections to UltiMaker networked printers." +msgstr "UltiMakerのネットワーク接属できるプリンターのネットワーク接続を管理します。" #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ultimakerネットワーク接続" +msgid "UltiMaker Network Connection" +msgstr "UltiMakerネットワーク接続" #: /3MFWriter/plugin.json msgctxt "description" @@ -6464,8 +6464,8 @@ msgstr "スライスインフォメーション" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Ultimakerフォーマットパッケージへの書き込みをサポートします。" +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "UltiMakerフォーマットパッケージへの書き込みをサポートします。" #: /UFPWriter/plugin.json msgctxt "name" @@ -6481,8 +6481,8 @@ msgstr "Digital Libraryに接続し、CuraでDigital Libraryからファイル #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6519,11 +6519,11 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Ultimakerのプリンターのアクションを供給する(ベッドレベリングウィザード、アップグレードの選択、他)" +msgstr "UltiMakerのプリンターのアクションを供給する(ベッドレベリングウィザード、アップグレードの選択、他)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" +msgid "UltiMaker machine actions" msgstr "Ultimkerプリンターのアクション" #: /GCodeGzReader/plugin.json @@ -6541,7 +6541,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "アプリケーションの拡張機能を管理し、Ultimakerウェブサイトから拡張機能を参照できるようにします。" +msgstr "アプリケーションの拡張機能を管理し、UltiMakerウェブサイトから拡張機能を参照できるようにします。" #: /Marketplace/plugin.json msgctxt "name" @@ -6893,8 +6893,8 @@ msgstr "G-codeライター" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Ultimakerフォーマットパッケージの読み込みをサポートします。" +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "UltiMakerフォーマットパッケージの読み込みをサポートします。" #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po index 96dff02c38..f9c23f1387 100644 --- a/resources/i18n/ko_KR/cura.po +++ b/resources/i18n/ko_KR/cura.po @@ -442,8 +442,8 @@ msgstr "새 로그인 작업을 시작할 수 없습니다. 다른 로그인 작 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Ultimaker 계정 서버에 도달할 수 없음." +msgid "Unable to reach the UltiMaker account server." +msgstr "UltiMaker 계정 서버에 도달할 수 없음." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -728,14 +728,14 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    죄송합니다, Ultimaker Cura가 정상적이지 않습니다. </ p> </ b>\n                    

    시작할 때 복구 할 수없는 오류가 발생했습니다. 이 오류는 잘못된 구성 파일로 인해 발생할 수 있습니다." +msgstr "

    죄송합니다, UltiMaker Cura가 정상적이지 않습니다. </ p> </ b>\n                    

    시작할 때 복구 할 수없는 오류가 발생했습니다. 이 오류는 잘못된 구성 파일로 인해 발생할 수 있습니다." " 설정을 백업하고 재설정하는 것이 좋습니다. </ p>\n                    

    백업은 설정 폴더에서 찾을 수 있습니다. </ p>\n                    

    문제를 해결하기 위해이 오류 보고서를 보내주십시오." " </ p>\n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "충돌 보고서를 Ultimaker에 보내기" +msgid "Send crash report to UltiMaker" +msgstr "충돌 보고서를 UltiMaker에 보내기" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -934,7 +934,7 @@ msgstr "네트워크 오류" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Ultimaker 계정에서 새 프린터가 감지되었습니다" @@ -1058,8 +1058,8 @@ msgstr[0] "다음 프린터는 Digital Factory에 연결되어 있지 않습니 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1088,7 +1088,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Ultimaker Connect를 실행하지 않는 프린터에 연결하려 합니다. 프린터를 최신 펌웨어로 업데이트해 주십시오." +msgstr "UltiMaker Connect를 실행하지 않는 프린터에 연결하려 합니다. 프린터를 최신 펌웨어로 업데이트해 주십시오." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1204,8 +1204,8 @@ msgstr "프린트 모니터링" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory에서 프린트 추적" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory에서 프린트 추적" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1315,8 +1315,8 @@ msgstr "UFP 파일에 쓸 수 없음:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimaker 포맷 패키지" +msgid "UltiMaker Format Package" +msgstr "UltiMaker 포맷 패키지" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1439,8 +1439,8 @@ msgstr "귀하의 계정으로 재료와 소프트웨어 패키지를 동기화 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Ultimaker 계정에서 변경 사항이 감지되었습니다" +msgid "Changes detected from your UltiMaker account" +msgstr "UltiMaker 계정에서 변경 사항이 감지되었습니다" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1602,8 +1602,8 @@ msgstr "버그 보고" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Report a bug on Ultimaker Cura's issue tracker." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Report a bug on UltiMaker Cura's issue tracker." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1749,7 +1749,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "프로젝트 파일 {0}이(가) 이 버전의 Ultimaker Cura에서 확인할 수 없는 프로파일을 사용하였습니다." +msgstr "프로젝트 파일 {0}이(가) 이 버전의 UltiMaker Cura에서 확인할 수 없는 프로파일을 사용하였습니다." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -1777,7 +1777,7 @@ msgid "" "p>\n" "

    View print quality " "guide

    " -msgstr "

    하나 이상의 3D 모델이 모델 크기 및 재료 구성으로 인해 최적의 상태로 인쇄되지 않을 수 있습니다.

    \n

    {model_names}

    \n

    인쇄 품질 및 안정성을 최고로 높이는 방법을 알아보십시오.

    \n

    인쇄" +msgstr "

    하나 이상의 3D 모델이 모델 크기 및 재료 구성으로 인해 최적의 상태로 인쇄되지 않을 수 있습니다.

    \n

    {model_names}

    \n

    인쇄 품질 및 안정성을 최고로 높이는 방법을 알아보십시오.

    \n

    인쇄" " 품질 가이드 보기

    " #: /Users/c.lamboo/ultimaker/Cura/plugins/USBPrinting/USBPrinterOutputDevice.py:42 @@ -2417,7 +2417,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "클라우드 프린터용 Webcam 피드는 Ultimaker Cura에서 볼 수 없습니다. '프린터 관리'를 클릭하여 Ultimaker Digital Factory를 방문하고 이 웹캠을 확인하십시오." +msgstr "클라우드 프린터용 Webcam 피드는 UltiMaker Cura에서 볼 수 없습니다. '프린터 관리'를 클릭하여 Ultimaker Digital Factory를 방문하고 이 웹캠을 확인하십시오." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2483,8 +2483,8 @@ msgstr "첫 번째로 사용 가능" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory를 사용하여 어디서든 프린터를 모니터링하십시오" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory를 사용하여 어디서든 프린터를 모니터링하십시오" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2798,7 +2798,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura는 인쇄 품질과 사용자 경험을 개선하기 위해 익명 데이터를 수집합니다. 공유되는 모든 데이터의 예는 다음과 같습니다:" +msgstr "UltiMaker Cura는 인쇄 품질과 사용자 경험을 개선하기 위해 익명 데이터를 수집합니다. 공유되는 모든 데이터의 예는 다음과 같습니다:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2822,8 +2822,8 @@ msgstr "Cura 프로젝트 저장하기" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "이 Ultimaker Original에 업그레이드 할 항목을 선택하십시오" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "이 UltiMaker Original에 업그레이드 할 항목을 선택하십시오" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2927,7 +2927,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "당사의 놀라운 사용자 커뮤니티에서 기여한 플러그인으로 워크 플로를 간소화하고 Ultimaker Cura 경험을 맞춤화하세요." +msgstr "당사의 놀라운 사용자 커뮤니티에서 기여한 플러그인으로 워크 플로를 간소화하고 UltiMaker Cura 경험을 맞춤화하세요." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -2990,7 +2990,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Ultimaker 3D 프린터에 최적화된 재료 프로파일을 선택하고 설치하십시오." +msgstr "UltiMaker 3D 프린터에 최적화된 재료 프로파일을 선택하고 설치하십시오." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3111,18 +3111,18 @@ msgstr "더 많이 로드" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Ultimaker 검증된 플러그인" +msgid "UltiMaker Verified Plug-in" +msgstr "UltiMaker 검증된 플러그인" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Ultimaker 인증된 재료" +msgid "UltiMaker Certified Material" +msgstr "UltiMaker 인증된 재료" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Ultimaker 검증된 패키지" +msgid "UltiMaker Verified Package" +msgstr "UltiMaker 검증된 패키지" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3134,7 +3134,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "여기서 Ultimaker Cura 플러그인 및 재료 프로파일을 관리하십시오. 플러그인을 최신 상태로 유지하고 설정을 정기적으로 백업하십시오." +msgstr "여기서 UltiMaker Cura 플러그인 및 재료 프로파일을 관리하십시오. 플러그인을 최신 상태로 유지하고 설정을 정기적으로 백업하십시오." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" @@ -4452,7 +4452,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "프린터에 대한 익명의 데이터를 Ultimaker로 보낼까요? 모델, IP 주소 또는 기타 개인 식별 정보는 전송되거나 저장되지 않습니다." +msgstr "프린터에 대한 익명의 데이터를 UltiMaker로 보낼까요? 모델, IP 주소 또는 기타 개인 식별 정보는 전송되거나 저장되지 않습니다." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4768,8 +4768,8 @@ msgstr "문제 해결" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Ultimaker 플랫폼에 로그인" +msgid "Sign in to the UltiMaker platform" +msgstr "UltiMaker 플랫폼에 로그인" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4783,8 +4783,8 @@ msgstr "재료 설정과 플러그인 백업 및 동기화" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Ultimaker 커뮤니티에서 48,000명 이상의 사용자와 아이디어를 공유하고 도움 받기" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "UltiMaker 커뮤니티에서 48,000명 이상의 사용자와 아이디어를 공유하고 도움 받기" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4793,20 +4793,20 @@ msgstr "건너뛰기" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Ultimaker 계정 무료 생성" +msgid "Create a free UltiMaker Account" +msgstr "UltiMaker 계정 무료 생성" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Ultimaker Cura를 개선하는 데 도움을 주십시오" +msgid "Help us to improve UltiMaker Cura" +msgstr "UltiMaker Cura를 개선하는 데 도움을 주십시오" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura는 인쇄 품질과 사용자 경험을 개선하기 위해 다음과 같은 익명 데이터를 수집합니다:" +msgstr "UltiMaker Cura는 인쇄 품질과 사용자 경험을 개선하기 위해 다음과 같은 익명 데이터를 수집합니다:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4832,7 +4832,7 @@ msgstr "인쇄 설정" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Ultimaker Cura가 수집하는 데이터에는 개인 정보가 포함되어 있지 않습니다." +msgstr "UltiMaker Cura가 수집하는 데이터에는 개인 정보가 포함되어 있지 않습니다." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4902,8 +4902,8 @@ msgstr "장치에 연결할 수 없습니다." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Ultimaker 프린터로 연결할 수 없습니까?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "UltiMaker 프린터로 연결할 수 없습니까?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4924,15 +4924,15 @@ msgstr "연결" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Ultimaker Cura에 오신 것을 환영합니다" +msgid "Welcome to UltiMaker Cura" +msgstr "UltiMaker Cura에 오신 것을 환영합니다" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Ultimaker Cura를 설정하려면 다음 단계로 이동하세요. 오래 걸리지 않습니다." +msgstr "UltiMaker Cura를 설정하려면 다음 단계로 이동하세요. 오래 걸리지 않습니다." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5627,7 +5627,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura는 커뮤니티와 공동으로 Ultimaker B.V.에 의해 개발되었습니다.\nCura는 다음의 오픈 소스 프로젝트를 사용합니다:" +msgstr "Cura는 커뮤니티와 공동으로 UltiMaker B.V.에 의해 개발되었습니다.\nCura는 다음의 오픈 소스 프로젝트를 사용합니다:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5812,8 +5812,8 @@ msgstr "내 프린터" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Ultimaker Digital Factory의 프린터를 모니터링하십시오." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "UltiMaker Digital Factory의 프린터를 모니터링하십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5832,23 +5832,23 @@ msgstr "프린트 작업을 모니터링하고 프린트 기록에서 다시 프 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "플러그인 및 재료 프로파일을 사용하여 Ultimaker Cura를 확장하십시오." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "플러그인 및 재료 프로파일을 사용하여 UltiMaker Cura를 확장하십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Ultimaker e-러닝을 통해 3D 프린팅 전문가로 거듭나십시오." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "UltiMaker e-러닝을 통해 3D 프린팅 전문가로 거듭나십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Ultimaker support" +msgid "UltiMaker support" +msgstr "UltiMaker support" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Ultimaker Cura로 시작하는 방법을 알아보십시오." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "UltiMaker Cura로 시작하는 방법을 알아보십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5857,8 +5857,8 @@ msgstr "질문하기" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Ultimaker 커뮤니티에 문의하십시오." +msgid "Consult the UltiMaker Community." +msgstr "UltiMaker 커뮤니티에 문의하십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5872,8 +5872,8 @@ msgstr "개발자에게 문제를 알려주십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Ultimaker 웹 사이트를 방문하십시오." +msgid "Visit the UltiMaker website." +msgstr "UltiMaker 웹 사이트를 방문하십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6182,12 +6182,12 @@ msgid "" "- Add material profiles and plug-ins from the Marketplace\n" "- Back-up and sync your material profiles and plug-ins\n" "- Share ideas and get help from 48,000+ users in the Ultimaker community" -msgstr "- 재료 설정 및 Marketplace 플러그인 추가\n- 재료 설정과 플러그인 백업 및 동기화\n- Ultimaker 커뮤니티에서 48,000명 이상의 사용자와 아이디어를 공유하고 도움 받기" +msgstr "- 재료 설정 및 Marketplace 플러그인 추가\n- 재료 설정과 플러그인 백업 및 동기화\n- UltiMaker 커뮤니티에서 48,000명 이상의 사용자와 아이디어를 공유하고 도움 받기" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Ultimaker 계정 무료 생성" +msgid "Create a free UltiMaker account" +msgstr "UltiMaker 계정 무료 생성" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6201,8 +6201,8 @@ msgstr "마지막 업데이트: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Ultimaker 계정" +msgid "UltiMaker Account" +msgstr "UltiMaker 계정" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6246,7 +6246,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "해당 프린터가 사용자의 계정에 연결되어 있지 않습니다. Ultimaker Digital Factory에 방문하여 연결을 설정하십시오." +msgstr "해당 프린터가 사용자의 계정에 연결되어 있지 않습니다. UltiMaker Digital Factory에 방문하여 연결을 설정하십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6426,13 +6426,13 @@ msgstr "후처리" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Ultimaker 네트워크 연결 프린터에 대한 네트워크 연결을 관리합니다." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "UltiMaker 네트워크 연결 프린터에 대한 네트워크 연결을 관리합니다." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ultimaker 네트워크 연결" +msgid "UltiMaker Network Connection" +msgstr "UltiMaker 네트워크 연결" #: /3MFWriter/plugin.json msgctxt "description" @@ -6466,8 +6466,8 @@ msgstr "슬라이스 정보" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Ultimaker 포맷 패키지 작성을 지원합니다." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "UltiMaker 포맷 패키지 작성을 지원합니다." #: /UFPWriter/plugin.json msgctxt "name" @@ -6483,8 +6483,8 @@ msgstr "디지털 라이브러리와 연결하여 Cura에서 디지털 라이브 #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker 디지털 라이브러리" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker 디지털 라이브러리" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6521,12 +6521,12 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Ultimaker 기계에 대한 기계 작동 제공(예 : 침대 수평 조정 마법사, 업그레이드 선택 등)" +msgstr "UltiMaker 기계에 대한 기계 작동 제공(예 : 침대 수평 조정 마법사, 업그레이드 선택 등)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ultimaker 기기 동작" +msgid "UltiMaker machine actions" +msgstr "UltiMaker 기기 동작" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6543,7 +6543,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "응용 프로그램의 확장을 관리하고 Ultimaker 웹 사이트에서 확장을 검색할 수 있습니다." +msgstr "응용 프로그램의 확장을 관리하고 UltiMaker 웹 사이트에서 확장을 검색할 수 있습니다." #: /Marketplace/plugin.json msgctxt "name" @@ -6895,8 +6895,8 @@ msgstr "GCode 작성자" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Ultimaker 포맷 패키지 읽기를 지원합니다." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "UltiMaker 포맷 패키지 읽기를 지원합니다." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index c015cf77d5..b9517c0982 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -443,8 +443,8 @@ msgstr "Er kan geen nieuw aanmeldingsproces worden gestart. Controleer of een an #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Kan de Ultimaker-accountserver niet bereiken." +msgid "Unable to reach the UltiMaker account server." +msgstr "Kan de UltiMaker-accountserver niet bereiken." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -729,15 +729,15 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    Oeps, Ultimaker Cura heeft een probleem gedetecteerd.

    \n

    Tijdens het opstarten is een onherstelbare fout opgetreden." +msgstr "

    Oeps, UltiMaker Cura heeft een probleem gedetecteerd.

    \n

    Tijdens het opstarten is een onherstelbare fout opgetreden." " Deze fout is mogelijk veroorzaakt door enkele onjuiste configuratiebestanden. Het wordt aanbevolen een back-up te maken en de standaardinstelling van" " uw configuratie te herstellen.

    \n

    Back-ups bevinden zich in de configuratiemap.

    \n

    Stuur ons dit crashrapport" " om het probleem op te lossen.

    \n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Het crashrapport naar Ultimaker verzenden" +msgid "Send crash report to UltiMaker" +msgstr "Het crashrapport naar UltiMaker verzenden" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -937,7 +937,7 @@ msgstr "Netwerkfout" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Nieuwe printer gedetecteerd van uw Ultimaker-account" msgstr[1] "Nieuwe printers gedetecteerd van uw Ultimaker-account" @@ -1064,8 +1064,8 @@ msgstr[1] "Deze printers zijn niet gekoppeld aan de Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1095,7 +1095,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "U probeert verbinding te maken met een printer waarop Ultimaker Connect niet wordt uitgevoerd. Werk de printer bij naar de nieuwste firmware." +msgstr "U probeert verbinding te maken met een printer waarop UltiMaker Connect niet wordt uitgevoerd. Werk de printer bij naar de nieuwste firmware." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1212,8 +1212,8 @@ msgstr "Printen in de gaten houden" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Volg het printen in Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Volg het printen in UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1323,8 +1323,8 @@ msgstr "Kan niet naar UFP-bestand schrijven:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimaker Format Package" +msgid "UltiMaker Format Package" +msgstr "UltiMaker Format Package" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1448,8 +1448,8 @@ msgstr "Wilt u materiaal- en softwarepackages synchroniseren met uw account?" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Wijzigingen gedetecteerd van uw Ultimaker-account" +msgid "Changes detected from your UltiMaker account" +msgstr "Wijzigingen gedetecteerd van uw UltiMaker-account" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1611,8 +1611,8 @@ msgstr "Een fout melden" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Meld een fout via de issue tracker van Ultimaker Cura." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Meld een fout via de issue tracker van UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1761,7 +1761,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "Projectbestand {0} wordt gemaakt met behulp van profielen die onbekend zijn bij deze versie van Ultimaker Cura." +msgstr "Projectbestand {0} wordt gemaakt met behulp van profielen die onbekend zijn bij deze versie van UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2435,7 +2435,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Vanuit Ultimaker Cura kunt u de webcamfeeds voor cloudprinters niet bekijken. Klik op 'Printer beheren' om Ultimaker Digital Factory te bezoeken en deze" +msgstr "Vanuit UltiMaker Cura kunt u de webcamfeeds voor cloudprinters niet bekijken. Klik op 'Printer beheren' om Ultimaker Digital Factory te bezoeken en deze" " webcam te bekijken." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2502,8 +2502,8 @@ msgstr "Eerst beschikbaar" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Monitor uw printers overal met Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Monitor uw printers overal met UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2819,7 +2819,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura verzamelt anonieme gegevens om de printkwaliteit en gebruikerservaring te verbeteren. Hieronder ziet u een voorbeeld van alle gegevens die" +msgstr "UltiMaker Cura verzamelt anonieme gegevens om de printkwaliteit en gebruikerservaring te verbeteren. Hieronder ziet u een voorbeeld van alle gegevens die" " worden gedeeld:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 @@ -2844,8 +2844,8 @@ msgstr "Cura-project opslaan" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Selecteer eventuele upgrades die op deze Ultimaker Original zijn uitgevoerd" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Selecteer eventuele upgrades die op deze UltiMaker Original zijn uitgevoerd" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2951,7 +2951,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Stroomlijn uw workflow en pas uw Ultimaker Cura-ervaring aan de eisen aan met plugins die zijn geleverd door onze fantastische gebruikersgemeenschap." +msgstr "Stroomlijn uw workflow en pas uw UltiMaker Cura-ervaring aan de eisen aan met plugins die zijn geleverd door onze fantastische gebruikersgemeenschap." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -3014,7 +3014,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Selecteer en installeer materiaalprofielen die zijn geoptimaliseerd voor uw Ultimaker 3D-printers." +msgstr "Selecteer en installeer materiaalprofielen die zijn geoptimaliseerd voor uw UltiMaker 3D-printers." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3135,18 +3135,18 @@ msgstr "Meer laden" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Geverifieerde Ultimaker-plug-in" +msgid "UltiMaker Verified Plug-in" +msgstr "Geverifieerde UltiMaker-plug-in" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Gecertificeerd Ultimaker-materiaal" +msgid "UltiMaker Certified Material" +msgstr "Gecertificeerd UltiMaker-materiaal" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Geverifieerd Ultimaker-pakket" +msgid "UltiMaker Verified Package" +msgstr "Geverifieerd UltiMaker-pakket" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3158,7 +3158,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Beheer hier uw Ultimaker Cura-plug-ins en materiaalprofielen. Zorg ervoor dat uw plug-ins up-to-date blijven en maak regelmatig een back-up van uw instellingen." +msgstr "Beheer hier uw UltiMaker Cura-plug-ins en materiaalprofielen. Zorg ervoor dat uw plug-ins up-to-date blijven en maak regelmatig een back-up van uw instellingen." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" @@ -4485,7 +4485,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "Mogen anonieme gegevens over uw print naar Ultimaker worden verzonden? Opmerking: er worden geen modellen, IP-adressen of andere persoonlijk identificeerbare" +msgstr "Mogen anonieme gegevens over uw print naar UltiMaker worden verzonden? Opmerking: er worden geen modellen, IP-adressen of andere persoonlijk identificeerbare" " gegevens verzonden of opgeslagen." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 @@ -4804,8 +4804,8 @@ msgstr "Probleemoplossing" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Meld u aan op het Ultimaker-platform" +msgid "Sign in to the UltiMaker platform" +msgstr "Meld u aan op het UltiMaker-platform" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4819,8 +4819,8 @@ msgstr "Maak een back-up van uw materiaalinstellingen en plug-ins en synchronise #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Deel ideeën met 48,000+ gebruikers in de Ultimaker Community of vraag hen om ondersteuning" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Deel ideeën met 48,000+ gebruikers in de UltiMaker Community of vraag hen om ondersteuning" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4829,20 +4829,20 @@ msgstr "Overslaan" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Maak een gratis Ultimaker-account aan" +msgid "Create a free UltiMaker Account" +msgstr "Maak een gratis UltiMaker-account aan" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Help ons Ultimaker Cura te verbeteren" +msgid "Help us to improve UltiMaker Cura" +msgstr "Help ons UltiMaker Cura te verbeteren" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura verzamelt anonieme gegevens om de printkwaliteit en gebruikerservaring te verbeteren, waaronder:" +msgstr "UltiMaker Cura verzamelt anonieme gegevens om de printkwaliteit en gebruikerservaring te verbeteren, waaronder:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4868,7 +4868,7 @@ msgstr "Instellingen voor printen" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "De gegevens die Ultimaker Cura verzamelt, bevatten geen persoonlijke informatie." +msgstr "De gegevens die UltiMaker Cura verzamelt, bevatten geen persoonlijke informatie." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4938,8 +4938,8 @@ msgstr "Kan geen verbinding maken met het apparaat." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Kunt u geen verbinding maken met uw Ultimaker-printer?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "Kunt u geen verbinding maken met uw UltiMaker-printer?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4960,15 +4960,15 @@ msgstr "Verbinding maken" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Welkom bij Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Welkom bij UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Volg deze stappen voor het instellen van\nUltimaker Cura. Dit duurt slechts even." +msgstr "Volg deze stappen voor het instellen van\nUltiMaker Cura. Dit duurt slechts even." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5668,7 +5668,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura is ontwikkeld door Ultimaker B.V. in samenwerking met de community.\nCura maakt met trots gebruik van de volgende opensourceprojecten:" +msgstr "Cura is ontwikkeld door UltiMaker B.V. in samenwerking met de community.\nCura maakt met trots gebruik van de volgende opensourceprojecten:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5853,8 +5853,8 @@ msgstr "Mijn printers" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Volg uw printers in Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Volg uw printers in UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5873,23 +5873,23 @@ msgstr "Volg printtaken en print opnieuw vanuit uw printgeschiedenis." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Breid Ultimaker Cura uit met plug-ins en materiaalprofielen." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Breid UltiMaker Cura uit met plug-ins en materiaalprofielen." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Word een 3D-printexpert met Ultimaker e-learning." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Word een 3D-printexpert met UltiMaker e-learning." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Ondersteuning van Ultimaker" +msgid "UltiMaker support" +msgstr "Ondersteuning van UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Leer hoe u aan de slag gaat met Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Leer hoe u aan de slag gaat met UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5898,8 +5898,8 @@ msgstr "Stel een vraag" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Consulteer de Ultimaker Community." +msgid "Consult the UltiMaker Community." +msgstr "Consulteer de UltiMaker Community." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5913,8 +5913,8 @@ msgstr "Laat ontwikkelaars weten dat er iets misgaat." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Bezoek de Ultimaker-website." +msgid "Visit the UltiMaker website." +msgstr "Bezoek de UltiMaker-website." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6234,8 +6234,8 @@ msgstr "- Voeg materiaalprofielen en plug-ins toe uit de Marktplaats\n- Maak bac #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Maak een gratis Ultimaker-account aan" +msgid "Create a free UltiMaker account" +msgstr "Maak een gratis UltiMaker-account aan" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6249,8 +6249,8 @@ msgstr "Laatste update: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Ultimaker-account" +msgid "UltiMaker Account" +msgstr "UltiMaker-account" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6294,7 +6294,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Deze printer is niet gekoppeld aan uw account. Ga naar de Ultimaker Digital Factory om een verbinding tot stand te brengen." +msgstr "Deze printer is niet gekoppeld aan uw account. Ga naar de UltiMaker Digital Factory om een verbinding tot stand te brengen." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6474,13 +6474,13 @@ msgstr "Nabewerking" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Hiermee beheert u netwerkverbindingen naar Ultimaker-netwerkprinters." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Hiermee beheert u netwerkverbindingen naar UltiMaker-netwerkprinters." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ultimaker-netwerkverbinding" +msgid "UltiMaker Network Connection" +msgstr "UltiMaker-netwerkverbinding" #: /3MFWriter/plugin.json msgctxt "description" @@ -6514,8 +6514,8 @@ msgstr "Slice-informatie" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Deze optie biedt ondersteuning voor het schrijven van Ultimaker Format Packages." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Deze optie biedt ondersteuning voor het schrijven van UltiMaker Format Packages." #: /UFPWriter/plugin.json msgctxt "name" @@ -6531,8 +6531,8 @@ msgstr "Maakt verbinding met de digitale bibliotheek, zodat Cura bestanden kan o #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6569,12 +6569,12 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Biedt machineacties voor Ultimaker-machines (zoals wizard voor bedkalibratie, selecteren van upgrades, enz.)" +msgstr "Biedt machineacties voor UltiMaker-machines (zoals wizard voor bedkalibratie, selecteren van upgrades, enz.)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Acties Ultimaker-machines" +msgid "UltiMaker machine actions" +msgstr "Acties UltiMaker-machines" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6591,7 +6591,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "Beheert extensies voor de toepassing en staat browsingextensies toe van de Ultimaker-website." +msgstr "Beheert extensies voor de toepassing en staat browsingextensies toe van de UltiMaker-website." #: /Marketplace/plugin.json msgctxt "name" @@ -6943,8 +6943,8 @@ msgstr "G-code-schrijver" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Deze optie biedt ondersteuning voor het lezen van Ultimaker Format Packages." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Deze optie biedt ondersteuning voor het lezen van UltiMaker Format Packages." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index 4de3b45113..f6d2876f69 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -424,8 +424,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Nie można uzyskać dostępu do serwera kont Ultimaker." +msgid "Unable to reach the UltiMaker account server." +msgstr "Nie można uzyskać dostępu do serwera kont UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -701,8 +701,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Wyślij raport błędu do Ultimaker" +msgid "Send crash report to UltiMaker" +msgstr "Wyślij raport błędu do UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -902,7 +902,7 @@ msgstr "Błąd sieci" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "" msgstr[1] "" @@ -1022,7 +1022,7 @@ msgstr[1] "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 @@ -1050,8 +1050,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" -msgid "You are attempting to connect to a printer that is not running Ultimaker Connect. Please update the printer to the latest firmware." -msgstr "Próbujesz połączyć się z drukarką, na której nie działa Ultimaker Connect. Zaktualizuj drukarkę do najnowszej wersji firmware." +msgid "You are attempting to connect to a printer that is not running UltiMaker Connect. Please update the printer to the latest firmware." +msgstr "Próbujesz połączyć się z drukarką, na której nie działa UltiMaker Connect. Zaktualizuj drukarkę do najnowszej wersji firmware." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1165,7 +1165,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 @@ -1274,8 +1274,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Pakiet Formatu Ultimaker" +msgid "UltiMaker Format Package" +msgstr "Pakiet Formatu UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1396,7 +1396,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" +msgid "Changes detected from your UltiMaker account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 @@ -1557,7 +1557,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." +msgid "Report a bug on UltiMaker Cura's issue tracker." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 @@ -1683,7 +1683,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723 #, python-brace-format msgctxt "@info:error Don't translate the XML tag !" -msgid "Project file {0} is made using profiles that are unknown to this version of Ultimaker Cura." +msgid "Project file {0} is made using profiles that are unknown to this version of UltiMaker Cura." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2327,7 +2327,7 @@ msgstr "Zaktualizuj oprogramowanie drukarki, aby zdalnie zarządzać kolejką." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2394,7 +2394,7 @@ msgstr "Pierwsza dostępna" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -2693,8 +2693,8 @@ msgstr "Wiećej informacji o zbieraniu anonimowych danych" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" -msgid "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura zbiera anonimowe dane w celu poprawy jakości druku i komfortu użytkowania. Poniżej znajduje się przykład wszystkich udostępnianych danych:" +msgid "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" +msgstr "UltiMaker Cura zbiera anonimowe dane w celu poprawy jakości druku i komfortu użytkowania. Poniżej znajduje się przykład wszystkich udostępnianych danych:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2718,8 +2718,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Proszę wybrać ulepszenia wykonane w tym Ultimaker Original" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Proszę wybrać ulepszenia wykonane w tym UltiMaker Original" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2814,7 +2814,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" -msgid "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users." +msgid "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 @@ -2873,7 +2873,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" -msgid "Select and install material profiles optimised for your Ultimaker 3D printers." +msgid "Select and install material profiles optimised for your UltiMaker 3D printers." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 @@ -2995,17 +2995,17 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" +msgid "UltiMaker Verified Plug-in" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" +msgid "UltiMaker Certified Material" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" +msgid "UltiMaker Verified Package" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 @@ -3015,7 +3015,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" -msgid "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." +msgid "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4284,8 +4284,8 @@ msgstr "Prywatność" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "Czy anonimowe dane na temat wydruku mają być wysyłane do Ultimaker? Uwaga. Żadne modele, adresy IP, ani żadne inne dane osobiste nie będą wysyłane i/lub przechowywane." +msgid "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "Czy anonimowe dane na temat wydruku mają być wysyłane do UltiMaker? Uwaga. Żadne modele, adresy IP, ani żadne inne dane osobiste nie będą wysyłane i/lub przechowywane." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4598,7 +4598,7 @@ msgstr "Rozwiązywanie problemów" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" +msgid "Sign in to the UltiMaker platform" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 @@ -4613,7 +4613,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 @@ -4623,18 +4623,18 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" +msgid "Create a free UltiMaker Account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Pomóż nam ulepszyć Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "Pomóż nam ulepszyć UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" -msgid "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:" -msgstr "Ultimaker Cura zbiera anonimowe dane w celu poprawy jakości druku i komfortu użytkownika, w tym:" +msgid "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:" +msgstr "UltiMaker Cura zbiera anonimowe dane w celu poprawy jakości druku i komfortu użytkownika, w tym:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4658,8 +4658,8 @@ msgstr "Ustawienia druku" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" -msgid "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Dane zebrane przez Ultimaker Cura nie będą zawierać żadnych prywatnych danych osobowych." +msgid "Data collected by UltiMaker Cura will not contain any personal information." +msgstr "Dane zebrane przez UltiMaker Cura nie będą zawierać żadnych prywatnych danych osobowych." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4729,7 +4729,7 @@ msgstr "Nie można połączyć się z urządzeniem." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" +msgid "Can't connect to your UltiMaker printer?" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 @@ -4749,12 +4749,12 @@ msgstr "Połącz" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Witaj w Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Witaj w UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" -msgid "Please follow these steps to set up Ultimaker Cura. This will only take a few moments." +msgid "Please follow these steps to set up UltiMaker Cura. This will only take a few moments." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 @@ -5626,7 +5626,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 @@ -5646,22 +5646,22 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." +msgid "Extend UltiMaker Cura with plugins and material profiles." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." +msgid "Become a 3D printing expert with UltiMaker e-learning." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" +msgid "UltiMaker support" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 @@ -5671,7 +5671,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." +msgid "Consult the UltiMaker Community." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 @@ -5686,7 +5686,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." +msgid "Visit the UltiMaker website." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 @@ -5980,7 +5980,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" +msgid "Create a free UltiMaker account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 @@ -5995,7 +5995,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" +msgid "UltiMaker Account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 @@ -6035,7 +6035,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." +msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 @@ -6210,13 +6210,13 @@ msgstr "Post Processing" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Zarządza połączeniami z sieciowymi drukarkami Ultimaker." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Zarządza połączeniami z sieciowymi drukarkami UltiMaker." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Połączenie sieciowe Ultimaker" +msgid "UltiMaker Network Connection" +msgstr "Połączenie sieciowe UltiMaker" #: /3MFWriter/plugin.json msgctxt "description" @@ -6250,8 +6250,8 @@ msgstr "Informacje o cięciu" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Zapewnia wsparcie dla zapisywania Pakietów Formatów Ultimaker." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Zapewnia wsparcie dla zapisywania Pakietów Formatów UltiMaker." #: /UFPWriter/plugin.json msgctxt "name" @@ -6265,7 +6265,7 @@ msgstr "" #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" msgstr "" #: /GCodeProfileReader/plugin.json @@ -6300,13 +6300,13 @@ msgstr "Czytnik siatki trójkątów" #: /UltimakerMachineActions/plugin.json msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." -msgstr "Zapewnia czynności maszyny dla urządzeń Ultimaker (na przykład kreator poziomowania stołu, wybór ulepszeń itp.)." +msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc.)." +msgstr "Zapewnia czynności maszyny dla urządzeń UltiMaker (na przykład kreator poziomowania stołu, wybór ulepszeń itp.)." #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Czynności maszyny Ultimaker" +msgid "UltiMaker machine actions" +msgstr "Czynności maszyny UltiMaker" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6320,7 +6320,7 @@ msgstr "Czytnik Skompresowanego G-code" #: /Marketplace/plugin.json msgctxt "description" -msgid "Manages extensions to the application and allows browsing extensions from the Ultimaker website." +msgid "Manages extensions to the application and allows browsing extensions from the UltiMaker website." msgstr "" #: /Marketplace/plugin.json @@ -6670,8 +6670,8 @@ msgstr "Zapisywacz G-code" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Zapewnia obsługę odczytu pakietów formatu Ultimaker." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Zapewnia obsługę odczytu pakietów formatu UltiMaker." #: /UFPReader/plugin.json msgctxt "name" @@ -7045,8 +7045,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Zapewnia widok Symulacji." #~ msgctxt "@info:status" -#~ msgid "Send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "Wyślij i nadzoruj zadania druku z każdego miejsca, używając konta Ultimaker." +#~ msgid "Send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "Wyślij i nadzoruj zadania druku z każdego miejsca, używając konta UltiMaker." #~ msgctxt "@info:title The %s gets replaced with the printer name." #~ msgid "New %s firmware available" @@ -7091,8 +7091,8 @@ msgstr "Etap Przygotowania" #~ "Ultimaker Cura. To zajmie tylko kilka chwil." #~ msgctxt "@label" -#~ msgid "What's new in Ultimaker Cura" -#~ msgstr "Co nowego w Ultimaker Cura" +#~ msgid "What's new in UltiMaker Cura" +#~ msgstr "Co nowego w UltiMaker Cura" #~ msgctxt "@info:status" #~ msgid "The selected model was too small to load." @@ -7139,8 +7139,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Połączony z Chmurą" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "Połacz z Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "Połacz z UltiMaker Cloud" #~ msgctxt "@label" #~ msgid "You need to login first before you can rate" @@ -7171,8 +7171,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Cześć %1" #~ msgctxt "@button" -#~ msgid "Ultimaker account" -#~ msgstr "Konto Ultimaker" +#~ msgid "UltiMaker account" +#~ msgstr "Konto UltiMaker" #~ msgctxt "@button" #~ msgid "Sign out" @@ -7251,20 +7251,20 @@ msgstr "Etap Przygotowania" #~ msgstr "Język:" #~ msgctxt "@label" -#~ msgid "Ultimaker Cloud" -#~ msgstr "Chmura Ultimaker" +#~ msgid "UltiMaker Cloud" +#~ msgstr "Chmura UltiMaker" #~ msgctxt "@text" #~ msgid "The next generation 3D printing workflow" #~ msgstr "Nowa generacja systemu drukowania 3D" #~ msgctxt "@text" -#~ msgid "- Send print jobs to Ultimaker printers outside your local network" -#~ msgstr "- Wysyłaj zadania druku do drukarek Ultimaker poza siecią lokalną" +#~ msgid "- Send print jobs to UltiMaker printers outside your local network" +#~ msgstr "- Wysyłaj zadania druku do drukarek UltiMaker poza siecią lokalną" #~ msgctxt "@text" -#~ msgid "- Store your Ultimaker Cura settings in the cloud for use anywhere" -#~ msgstr "- Przechowuj ustawienia Ultimaker Cura w chmurze, aby używać w każdym miejscu" +#~ msgid "- Store your UltiMaker Cura settings in the cloud for use anywhere" +#~ msgstr "- Przechowuj ustawienia UltiMaker Cura w chmurze, aby używać w każdym miejscu" #~ msgctxt "@text" #~ msgid "- Get exclusive access to print profiles from leading brands" @@ -7347,8 +7347,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Pokaż Wszystkie Ustawienia" #~ msgctxt "@title:window" -#~ msgid "Ultimaker Cura" -#~ msgstr "Cura Ultimaker" +#~ msgid "UltiMaker Cura" +#~ msgstr "Cura UltiMaker" #~ msgctxt "@title:window" #~ msgid "About Cura" @@ -7431,8 +7431,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Lista kontrolna" #~ msgctxt "@label" -#~ msgid "Please select any upgrades made to this Ultimaker 2." -#~ msgstr "Proszę wybrać ulepszenia w tym Ultimaker 2." +#~ msgid "Please select any upgrades made to this UltiMaker 2." +#~ msgstr "Proszę wybrać ulepszenia w tym UltiMaker 2." #~ msgctxt "@label" #~ msgid "Olsson Block" @@ -7555,8 +7555,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Nie można uruchomić nowego zadania drukowania." #~ msgctxt "@label" -#~ msgid "There is an issue with the configuration of your Ultimaker, which makes it impossible to start the print. Please resolve this issues before continuing." -#~ msgstr "Wystąpił problem z konfiguracją twojego Ultimaker'a, przez który nie można rozpocząć wydruku. Proszę rozwiąż te problemy przed kontynuowaniem." +#~ msgid "There is an issue with the configuration of your UltiMaker, which makes it impossible to start the print. Please resolve this issues before continuing." +#~ msgstr "Wystąpił problem z konfiguracją twojego UltiMaker'a, przez który nie można rozpocząć wydruku. Proszę rozwiąż te problemy przed kontynuowaniem." #~ msgctxt "@window:title" #~ msgid "Mismatched configuration" @@ -7647,20 +7647,20 @@ msgstr "Etap Przygotowania" #~ msgstr "Wystąpił błąd połączenia z chmurą." #~ msgctxt "@info:status" -#~ msgid "Uploading via Ultimaker Cloud" -#~ msgstr "Przesyłanie z Ultimaker Cloud" +#~ msgid "Uploading via UltiMaker Cloud" +#~ msgstr "Przesyłanie z UltiMaker Cloud" #~ msgctxt "@info:status Ultimaker Cloud is a brand name and shouldn't be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "Połącz z Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "Połącz z UltiMaker Cloud" #~ msgctxt "@action" #~ msgid "Don't ask me again for this printer." #~ msgstr "Nie pytaj więcej dla tej drukarki." #~ msgctxt "@info:status" -#~ msgid "You can now send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "Możesz teraz wysłać i nadzorować zadania druku z każdego miejsca, używając konta Ultimaker." +#~ msgid "You can now send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "Możesz teraz wysłać i nadzorować zadania druku z każdego miejsca, używając konta UltiMaker." #~ msgctxt "@info:status" #~ msgid "Connected!" @@ -7699,8 +7699,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Przewodnik po ustawieniach Cura" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers." -#~ msgstr "Zarządza ustawieniami połączenia sieciowego z drukarkami Ultimaker 3." +#~ msgid "Manages network connections to UltiMaker 3 printers." +#~ msgstr "Zarządza ustawieniami połączenia sieciowego z drukarkami UltiMaker 3." #~ msgctxt "name" #~ msgid "UM3 Network Connection" @@ -7803,8 +7803,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Wysyłanie danych do zdalnego klastra" #~ msgctxt "@info:status" -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "Połącz z Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "Połącz z UltiMaker Cloud" #~ msgctxt "@info" #~ msgid "Cura collects anonymized usage statistics." @@ -7939,20 +7939,20 @@ msgstr "Etap Przygotowania" #~ msgstr "Wybierz drukarkę połączoną z siecią, aby nadzorować." #~ msgctxt "@info" -#~ msgid "Please connect your Ultimaker printer to your local network." -#~ msgstr "Połącz drukarkę Ultimaker z twoją siecią lokalną." +#~ msgid "Please connect your UltiMaker printer to your local network." +#~ msgstr "Połącz drukarkę UltiMaker z twoją siecią lokalną." #~ msgctxt "@text:window" -#~ msgid "Cura sends anonymous data to Ultimaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." -#~ msgstr "Cura wysyła anonimowe dane do Ultimaker w celu polepszenia jakości wydruków oraz interakcji z użytkownikiem. Poniżej podano przykład wszystkich danych, jakie mogą być przesyłane." +#~ msgid "Cura sends anonymous data to UltiMaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." +#~ msgstr "Cura wysyła anonimowe dane do UltiMaker w celu polepszenia jakości wydruków oraz interakcji z użytkownikiem. Poniżej podano przykład wszystkich danych, jakie mogą być przesyłane." #~ msgctxt "@text:window" #~ msgid "I don't want to send this data" #~ msgstr "Nie chcę wysyłać danych" #~ msgctxt "@text:window" -#~ msgid "Allow sending this data to Ultimaker and help us improve Cura" -#~ msgstr "Pozwól wysłać te dane do Ultimakera i pomóż nam ulepszyć Curę" +#~ msgid "Allow sending this data to UltiMaker and help us improve Cura" +#~ msgstr "Pozwól wysłać te dane do UltiMakera i pomóż nam ulepszyć Curę" #~ msgctxt "@label" #~ msgid "No print selected" @@ -8134,8 +8134,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Nie chcę przesyłać tych danych" #~ msgctxt "@text:window" -#~ msgid "Allow sending these data to Ultimaker and help us improve Cura" -#~ msgstr "Zezwól na przesyłanie tych danych do Ultimaker i pomóż nam ulepszać Cura" +#~ msgid "Allow sending these data to UltiMaker and help us improve Cura" +#~ msgstr "Zezwól na przesyłanie tych danych do UltiMaker i pomóż nam ulepszać Cura" #~ msgctxt "@label" #~ msgid "Printer type:" @@ -8330,7 +8330,7 @@ msgstr "Etap Przygotowania" #~ msgstr "Popraw przycz. modelu" #~ msgctxt "@label" -#~ msgid "Need help improving your prints?
    Read the Ultimaker Troubleshooting Guides" +#~ msgid "Need help improving your prints?
    Read the UltiMaker Troubleshooting Guides" #~ msgstr "Potrzebujesz pomocy w ulepszaniu wydruków?
    Przeczytaj instrukcje dotyczące rozwiązywania problemów" #~ msgctxt "@title:window" @@ -8350,8 +8350,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Sprawdź kompatybilność" #~ msgctxt "@tooltip" -#~ msgid "Click to check the material compatibility on Ultimaker.com." -#~ msgstr "Kliknij, aby sprawdzić zgodność materiału na Ultimaker.com." +#~ msgid "Click to check the material compatibility on UltiMaker.com." +#~ msgstr "Kliknij, aby sprawdzić zgodność materiału na UltiMaker.com." #~ msgctxt "description" #~ msgid "Shows changes since latest checked version." @@ -8466,16 +8466,16 @@ msgstr "Etap Przygotowania" #~ "Powrócono do \"{}\"." #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of Ultimaker 3 printers." -#~ msgstr "Ta drukarka nie jest skonfigurowana do zarządzania grupą drukarek Ultimaker 3." +#~ msgid "This printer is not set up to host a group of UltiMaker 3 printers." +#~ msgstr "Ta drukarka nie jest skonfigurowana do zarządzania grupą drukarek UltiMaker 3." #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 Ultimaker 3 printers." -#~ msgstr "Ta drukarka jest gospodarzem grupy %1 drukarek Ultimaker 3." +#~ msgid "This printer is the host for a group of %1 UltiMaker 3 printers." +#~ msgstr "Ta drukarka jest gospodarzem grupy %1 drukarek UltiMaker 3." #~ msgctxt "@label: arg 1 is group name" -#~ msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "%1 nie została ustawiona do hostowania grupy podłączonych drukarek Ultimaker 3" +#~ msgid "%1 is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "%1 nie została ustawiona do hostowania grupy podłączonych drukarek UltiMaker 3" #~ msgctxt "@label link to connect manager" #~ msgid "Add/Remove printers" @@ -8736,12 +8736,12 @@ msgstr "Etap Przygotowania" #~ msgstr "Przeglądarka wtyczek" #~ msgctxt "@label" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@title:window" #~ msgid "SolidWorks: Export wizard" @@ -8892,8 +8892,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Zapewnia możliwość zmiany ustawień maszyny (tj. obszaru roboczego, rozmiaru dyszy itd.)" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "Zarządza połączeniem sieciowym z drukarką Ultimaker 3" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "Zarządza połączeniem sieciowym z drukarką UltiMaker 3" #~ msgctxt "description" #~ msgid "Gives you the possibility to open certain files using SolidWorks itself. Conversion is done by this plugin and additional optimizations." @@ -8932,8 +8932,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Pyta użytkownika czy zgadza się z naszą licencją" #~ msgctxt "description" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "Zapewnia czynności maszyny dla maszyn Ultimaker (tj. poziomowanie stołu, wybór ulepszeń, itd.)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "Zapewnia czynności maszyny dla maszyn UltiMaker (tj. poziomowanie stołu, wybór ulepszeń, itd.)" #~ msgctxt "@item:inlistbox" #~ msgid "GCode File" @@ -9039,12 +9039,12 @@ msgstr "Etap Przygotowania" #~ msgid "Resuming print..." #~ msgstr "Wznawianie drukowania ..." -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "Ta drukarka nie jest skonfigurowana do zarządzania grupą podłączonych drukarek Ultimaker 3." +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "Ta drukarka nie jest skonfigurowana do zarządzania grupą podłączonych drukarek UltiMaker 3." #~ msgctxt "Count is number of printers." -#~ msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." -#~ msgstr "Ta drukarka jest gospodarzem grupy {count} podłączonych drukarek Ultimaker 3." +#~ msgid "This printer is the host for a group of {count} connected UltiMaker 3 printers." +#~ msgstr "Ta drukarka jest gospodarzem grupy {count} podłączonych drukarek UltiMaker 3." #~ msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." #~ msgstr "{printer_name} skończyła drukowanie '{job_name}'. Proszę zabrać wydruk i potwierdzić oczyszczenie platformy roboczej." @@ -9053,8 +9053,8 @@ msgstr "Etap Przygotowania" #~ msgstr "{printer_name} jest zarezerwowana do druku '{job_name}'. Proszę zmień konfigurację drukarki, żeby pasowała do zadania dla niej, aby rozpocząć drukowanie." #~ msgctxt "@info:status" -#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "Nie można wysłać nowego zadania: ta drukarka 3D nie jest (jeszcze) ustawiona jako gospodarz grupy podłączonych drukarek Ultimaker 3." +#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "Nie można wysłać nowego zadania: ta drukarka 3D nie jest (jeszcze) ustawiona jako gospodarz grupy podłączonych drukarek UltiMaker 3." #~ msgctxt "@info:status" #~ msgid "Unable to send print job to group {cluster_name}." @@ -9179,12 +9179,12 @@ msgstr "Etap Przygotowania" #~ msgstr "Nieznany kod błędu: %1" #~ msgctxt "@label Printer name" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label Printer name" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@label Printer status" #~ msgid "Unknown" @@ -9459,12 +9459,12 @@ msgstr "Etap Przygotowania" #~ msgstr "Ok" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "Ta drukarka nie została ustawiona do hostowania grupy podłączonych drukarek Ultimaker 3" +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "Ta drukarka nie została ustawiona do hostowania grupy podłączonych drukarek UltiMaker 3" #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" -#~ msgstr "Ta drukarka nie została ustawiona do hostowania grupy %1 podłączonych drukarek Ultimaker 3" +#~ msgid "This printer is the host for a group of %1 connected UltiMaker 3 printers" +#~ msgstr "Ta drukarka nie została ustawiona do hostowania grupy %1 podłączonych drukarek UltiMaker 3" #~ msgctxt "@label" #~ msgid "Completed on: " @@ -9780,8 +9780,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Zapewnia podłączanie wymiennego dysku i zapisywania na bieżąco." #~ msgctxt "@info:whatsthis" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "Zarządza połączeniami sieciowymi z drukarkami Ultimaker 3" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "Zarządza połączeniami sieciowymi z drukarkami UltiMaker 3" #~ msgctxt "@label" #~ msgid "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}" @@ -9944,12 +9944,12 @@ msgstr "Etap Przygotowania" #~ msgstr "Zapewnia obsługę pisania plików 3MF." #~ msgctxt "@label" -#~ msgid "Ultimaker machine actions" -#~ msgstr "Działania maszyny Ultimaker" +#~ msgid "UltiMaker machine actions" +#~ msgstr "Działania maszyny UltiMaker" #~ msgctxt "@info:whatsthis" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "Zapewnia działania maszyny Ultimaker (takie jak kreator poziomowania stołu, wybierania ulepszeń itd.)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "Zapewnia działania maszyny UltiMaker (takie jak kreator poziomowania stołu, wybierania ulepszeń itd.)" #~ msgctxt "@label" #~ msgid "Cura Profile Reader" @@ -9988,8 +9988,8 @@ msgstr "Etap Przygotowania" #~ msgstr "Jeśli drukarka nie ma na liście, przeczytaj przewodnik o rozwiązywaniu problemów z drukowaniem sieciowym" #~ msgctxt "@item:inlistbox" -#~ msgid "Ultimaker" -#~ msgstr "Ultimaker" +#~ msgid "UltiMaker" +#~ msgstr "UltiMaker" #~ msgctxt "@label" #~ msgid "Support library for scientific computing " diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index ae77341568..fe03d09f15 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -398,8 +398,8 @@ msgstr "Não foi possível iniciar processo de sign-in. Verifique se outra tenta #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Não foi possível contactar o servidor de contas da Ultimaker." +msgid "Unable to reach the UltiMaker account server." +msgstr "Não foi possível contactar o servidor de contas da UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -651,8 +651,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Enviar relatório de falha à Ultimaker" +msgid "Send crash report to UltiMaker" +msgstr "Enviar relatório de falha à UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -850,7 +850,7 @@ msgstr "Erro de rede" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Nova impressora detectada na sua conta Ultimaker" msgstr[1] "Novas impressoras detectadas na sua conta Ultimaker" @@ -970,8 +970,8 @@ msgstr[1] "Estas impressoras não estão ligadas à Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -998,8 +998,8 @@ msgstr "Remover impressoras" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" -msgid "You are attempting to connect to a printer that is not running Ultimaker Connect. Please update the printer to the latest firmware." -msgstr "Você está tentando conectar a uma impressora que não está rodando Ultimaker Connect. Por favor atualiza a impressora para o firmware mais recente." +msgid "You are attempting to connect to a printer that is not running UltiMaker Connect. Please update the printer to the latest firmware." +msgstr "Você está tentando conectar a uma impressora que não está rodando UltiMaker Connect. Por favor atualiza a impressora para o firmware mais recente." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1116,8 +1116,8 @@ msgstr "Monitorar impressão" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Rastrear a impressão na Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Rastrear a impressão na UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1218,8 +1218,8 @@ msgstr "Não foi possível escrever no arquivo UFP:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Pacote de Formato da Ultimaker" +msgid "UltiMaker Format Package" +msgstr "Pacote de Formato da UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1333,8 +1333,8 @@ msgstr "Você quer sincronizar os pacotes de material e software com sua conta?" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Alterações detectadas de sua conta Ultimaker" +msgid "Changes detected from your UltiMaker account" +msgstr "Alterações detectadas de sua conta UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1492,8 +1492,8 @@ msgstr "Relatar um bug" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Relatar um bug no issue tracker do Ultimaker Cura." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Relatar um bug no issue tracker do UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1613,8 +1613,8 @@ msgstr "Arquivo de projeto {0} está corrompido: { #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723 #, python-brace-format msgctxt "@info:error Don't translate the XML tag !" -msgid "Project file {0} is made using profiles that are unknown to this version of Ultimaker Cura." -msgstr "O arquivo de projeto {0} foi feito usando perfis que são desconhecidos para esta versão do Ultimaker Cura." +msgid "Project file {0} is made using profiles that are unknown to this version of UltiMaker Cura." +msgstr "O arquivo de projeto {0} foi feito usando perfis que são desconhecidos para esta versão do UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2237,8 +2237,8 @@ msgstr "Por favor atualize o firmware de sua impressora parar gerir a fila remot #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Fontes de webcam para impressoras de nuvem não podem ser vistas pelo Ultimaker Cura. Clique em \"Gerenciar impressora\" para visitar a Ultimaker Digital Factory e visualizar esta webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Fontes de webcam para impressoras de nuvem não podem ser vistas pelo UltiMaker Cura. Clique em \"Gerenciar impressora\" para visitar a Ultimaker Digital Factory e visualizar esta webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2303,8 +2303,8 @@ msgstr "Primeira disponível" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Monitora suas impressoras de todo lugar usando a Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Monitora suas impressoras de todo lugar usando a UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2588,8 +2588,8 @@ msgstr "Mais informações em coleção anônima de dados" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" -msgid "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" -msgstr "O Ultimaker Cura coleta dados anônimos para poder aprimorar a qualidade de impressão e experiência do usuário. Abaixo segue um exemplo de todos os dados que são compartilhados:" +msgid "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" +msgstr "O UltiMaker Cura coleta dados anônimos para poder aprimorar a qualidade de impressão e experiência do usuário. Abaixo segue um exemplo de todos os dados que são compartilhados:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2613,8 +2613,8 @@ msgstr "Salvar o projeto Cura" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Por favor selecionar quaisquer atualizações feitas nesta Ultimaker Original" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Por favor selecionar quaisquer atualizações feitas nesta UltiMaker Original" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2708,8 +2708,8 @@ msgstr "Instalar Complementos" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" -msgid "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users." -msgstr "Simplifique seu fluxo de trabalho e personalize sua experiência do Ultimaker Cura com complementos contribuídos por nossa fantástica comunidade de usuários." +msgid "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users." +msgstr "Simplifique seu fluxo de trabalho e personalize sua experiência do UltiMaker Cura com complementos contribuídos por nossa fantástica comunidade de usuários." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -2764,8 +2764,8 @@ msgstr "Instalar Materiais" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" -msgid "Select and install material profiles optimised for your Ultimaker 3D printers." -msgstr "Selecione e instale perfis de material otimizados para suas impressoras 3D Ultimaker." +msgid "Select and install material profiles optimised for your UltiMaker 3D printers." +msgstr "Selecione e instale perfis de material otimizados para suas impressoras 3D UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -2884,18 +2884,18 @@ msgstr "Carregar mais" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Complemento Verificado Ultimaker" +msgid "UltiMaker Verified Plug-in" +msgstr "Complemento Verificado UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Material Certificado Ultimaker" +msgid "UltiMaker Certified Material" +msgstr "Material Certificado UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Pacote Verificado Ultimaker" +msgid "UltiMaker Verified Package" +msgstr "Pacote Verificado UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -2904,7 +2904,7 @@ msgstr "Gerir pacotes" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" -msgid "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." +msgid "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." msgstr "Gerencie seu complementos e perfis de materiais do Cura aqui. Se assegure de manter seus complementos atualizados e fazer backup de sua configuração regularmente." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4135,8 +4135,8 @@ msgstr "Privacidade" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "Dados anônimos sobre sua impressão podem ser enviados para a Ultimaker? Nota: nenhuma informação pessoalmente identificável, modelos ou endereços IP são enviados ou armazenados." +msgid "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "Dados anônimos sobre sua impressão podem ser enviados para a UltiMaker? Nota: nenhuma informação pessoalmente identificável, modelos ou endereços IP são enviados ou armazenados." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4442,8 +4442,8 @@ msgstr "Resolução de problemas" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Entre na plataforma Ultimaker" +msgid "Sign in to the UltiMaker platform" +msgstr "Entre na plataforma UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4457,8 +4457,8 @@ msgstr "Fazer backup e sincronizar seus ajustes de materiais e plugins" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Compartilhe ideias e consiga ajuda de mais de 48.000 usuários da Comunidade Ultimaker" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Compartilhe ideias e consiga ajuda de mais de 48.000 usuários da Comunidade UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4467,18 +4467,18 @@ msgstr "Pular" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Criar uma conta Ultimaker gratuita" +msgid "Create a free UltiMaker Account" +msgstr "Criar uma conta UltiMaker gratuita" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Nos ajude a melhor o Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "Nos ajude a melhor o UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" -msgid "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:" -msgstr "O Ultimaker Cura coleta dados anônimos para melhor a qualidade de impressão e experiência do usuário, incluindo:" +msgid "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:" +msgstr "O UltiMaker Cura coleta dados anônimos para melhor a qualidade de impressão e experiência do usuário, incluindo:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4502,8 +4502,8 @@ msgstr "Ajustes de impressão" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" -msgid "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Dados coletados pelo Ultimaker Cura não conterão nenhuma informação pessoal." +msgid "Data collected by UltiMaker Cura will not contain any personal information." +msgstr "Dados coletados pelo UltiMaker Cura não conterão nenhuma informação pessoal." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4572,8 +4572,8 @@ msgstr "Não foi possível conectar ao dispositivo." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Não consegue conectar à sua impressora Ultimaker?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "Não consegue conectar à sua impressora UltiMaker?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4592,13 +4592,13 @@ msgstr "Conectar" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Bem-vindo ao Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Bem-vindo ao UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" -msgid "Please follow these steps to set up Ultimaker Cura. This will only take a few moments." -msgstr "Por favor siga estes passos para configurar o Ultimaker Cura. Isto tomará apenas alguns momentos." +msgid "Please follow these steps to set up UltiMaker Cura. This will only take a few moments." +msgstr "Por favor siga estes passos para configurar o UltiMaker Cura. Isto tomará apenas alguns momentos." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5467,8 +5467,8 @@ msgstr "Minhas impressoras" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Monitora as impressoras na Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Monitora as impressoras na UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5487,23 +5487,23 @@ msgstr "Monitora trabalhos de impressão e reimprime a partir do histórico." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Estende o Ultimaker Cura com complementos e perfis de material." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Estende o UltiMaker Cura com complementos e perfis de material." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Torne-se um especialista em impressão 3D com Ultimaker e-learning." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Torne-se um especialista em impressão 3D com UltiMaker e-learning." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Suporte Ultimaker" +msgid "UltiMaker support" +msgstr "Suporte UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Saiba como começar com o Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Saiba como começar com o UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5512,8 +5512,8 @@ msgstr "Fazer uma pergunta" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Consultar a Comunidade Ultimaker." +msgid "Consult the UltiMaker Community." +msgstr "Consultar a Comunidade UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5527,8 +5527,8 @@ msgstr "Deixe os desenvolvedores saberem que algo está errado." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Visita o website da Ultimaker." +msgid "Visit the UltiMaker website." +msgstr "Visita o website da UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -5819,8 +5819,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Criar uma conta Ultimaker gratuita" +msgid "Create a free UltiMaker account" +msgstr "Criar uma conta UltiMaker gratuita" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -5834,8 +5834,8 @@ msgstr "Última atualização: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Conta na Ultimaker" +msgid "UltiMaker Account" +msgstr "Conta na UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -5874,8 +5874,8 @@ msgstr "A impressora de nuvem está offline. Por favor verifique se a impressora #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." -msgstr "Esta impressora não está vinculada à sua conta. Por favor visite a Ultimaker Digital Factory para estabelecer uma conexão." +msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." +msgstr "Esta impressora não está vinculada à sua conta. Por favor visite a UltiMaker Digital Factory para estabelecer uma conexão." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6049,13 +6049,13 @@ msgstr "Pós-processamento" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Administra conexões de rede a impressora Ultimaker conectadas." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Administra conexões de rede a impressora UltiMaker conectadas." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Conexão de Rede Ultimaker" +msgid "UltiMaker Network Connection" +msgstr "Conexão de Rede UltiMaker" #: /3MFWriter/plugin.json msgctxt "description" @@ -6089,8 +6089,8 @@ msgstr "Informação de fatiamento" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Provê suporte para a escrita de Ultimaker Format Packages (Pacotes de Formato da Ultimaker)." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Provê suporte para a escrita de UltiMaker Format Packages (Pacotes de Formato da Ultimaker)." #: /UFPWriter/plugin.json msgctxt "name" @@ -6104,8 +6104,8 @@ msgstr "Conecta-se à Digital Library, permitindo ao Cura abrir arquivos dela e #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Digital Library da Ultimaker" +msgid "UltiMaker Digital Library" +msgstr "Digital Library da UltiMaker" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6139,13 +6139,13 @@ msgstr "Leitor Trimesh" #: /UltimakerMachineActions/plugin.json msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." -msgstr "Provê ações de máquina para impressoras da Ultimaker (tais como assistente de nivelamento de mesa, seleção de atualizações, etc.)." +msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc.)." +msgstr "Provê ações de máquina para impressoras da UltiMaker (tais como assistente de nivelamento de mesa, seleção de atualizações, etc.)." #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ações de máquina Ultimaker" +msgid "UltiMaker machine actions" +msgstr "Ações de máquina UltiMaker" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6159,8 +6159,8 @@ msgstr "Leitor de G-Code Comprimido" #: /Marketplace/plugin.json msgctxt "description" -msgid "Manages extensions to the application and allows browsing extensions from the Ultimaker website." -msgstr "Gerencia extensões à aplicação e permite navegar extensões do sítio web da Ultimaker." +msgid "Manages extensions to the application and allows browsing extensions from the UltiMaker website." +msgstr "Gerencia extensões à aplicação e permite navegar extensões do sítio web da UltiMaker." #: /Marketplace/plugin.json msgctxt "name" @@ -6509,8 +6509,8 @@ msgstr "Gerador de G-Code" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Provê suporte a leitura de Pacotes de Formato Ultimaker (UFP)." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Provê suporte a leitura de Pacotes de Formato UltiMaker (UFP)." #: /UFPReader/plugin.json msgctxt "name" @@ -6825,8 +6825,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Email" #~ msgctxt "@description" -#~ msgid "Please sign in to get verified plugins and materials for Ultimaker Cura Enterprise" -#~ msgstr "Por favor se logue para adquirir complementos e materiais verificados para o Ultimaker Cura Enterprise" +#~ msgid "Please sign in to get verified plugins and materials for UltiMaker Cura Enterprise" +#~ msgstr "Por favor se logue para adquirir complementos e materiais verificados para o UltiMaker Cura Enterprise" #~ msgctxt "@label" #~ msgid "Version" @@ -6983,16 +6983,16 @@ msgstr "Estágio de Preparação" #~ msgstr "Provê a Visão Simulada." #~ msgctxt "@info:status" -#~ msgid "Send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "Envia e monitora trabalhos de impressão de qualquer lugar usando sua conta Ultimaker." +#~ msgid "Send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "Envia e monitora trabalhos de impressão de qualquer lugar usando sua conta UltiMaker." #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Digital Factory" -#~ msgstr "Conectar à Ultimaker Digital Factory" +#~ msgid "Connect to UltiMaker Digital Factory" +#~ msgstr "Conectar à UltiMaker Digital Factory" #~ msgctxt "@info" -#~ msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura." -#~ msgstr "Feeds de webcam para impressoras de nuvem não podem ser vistos pelo Ultimaker Cura." +#~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." +#~ msgstr "Feeds de webcam para impressoras de nuvem não podem ser vistos pelo UltiMaker Cura." #~ msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" #~ msgid "New features or bug-fixes may be available for your {machine_name}! If not already at the latest version, it is recommended to update the firmware on your printer to version {latest_version}." @@ -7059,8 +7059,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Finalizar" #~ msgctxt "@label" -#~ msgid "Ultimaker Account" -#~ msgstr "Conta da Ultimaker" +#~ msgid "UltiMaker Account" +#~ msgstr "Conta da UltiMaker" #~ msgctxt "@text" #~ msgid "Your key to connected 3D printing" @@ -7075,8 +7075,8 @@ msgstr "Estágio de Preparação" #~ msgstr "- Flexibilize-se ao sincronizar sua configuração e a acessar de qualquer lugar" #~ msgctxt "@text" -#~ msgid "- Increase efficiency with a remote workflow on Ultimaker printers" -#~ msgstr "- Melhore a eficiência com um fluxo de trabalho remoto com as impressoras Ultimaker" +#~ msgid "- Increase efficiency with a remote workflow on UltiMaker printers" +#~ msgstr "- Melhore a eficiência com um fluxo de trabalho remoto com as impressoras UltiMaker" #~ msgctxt "@text" #~ msgid "" @@ -7087,8 +7087,8 @@ msgstr "Estágio de Preparação" #~ "o Ultimaker Cura. Isto tomará apenas alguns momentos." #~ msgctxt "@label" -#~ msgid "What's new in Ultimaker Cura" -#~ msgstr "O que há de novo no Ultimaker Cura" +#~ msgid "What's new in UltiMaker Cura" +#~ msgstr "O que há de novo no UltiMaker Cura" #~ msgctxt "@label ({} is object name)" #~ msgid "Are you sure you wish to remove {}? This cannot be undone!" @@ -7119,12 +7119,12 @@ msgstr "Estágio de Preparação" #~ msgstr "Impressoras adicionadas da Digital Factory:
      {}
    " #~ msgctxt "info:status" -#~ msgid "
      {}
    To establish a connection, please visit the Ultimaker Digital Factory." -#~ msgstr "
      {}
    Para estabelecer uma conexão, por favor visite a Ultimaker Digital Factory." +#~ msgid "
      {}
    To establish a connection, please visit the UltiMaker Digital Factory." +#~ msgstr "
      {}
    Para estabelecer uma conexão, por favor visite a Ultimaker Digital Factory." #~ msgctxt "@label ({} is printer name)" -#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit Ultimaker Digital Factory.

    Are you sure you want to remove {} temporarily?" -#~ msgstr "{} será removida até a próxima sincronização de conta.
    Para remover {} permanentemente, visite a Ultimaker Digital Factory.

    Tem certeza que deseja remover {} temporariamente?" +#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit UltiMaker Digital Factory.

    Are you sure you want to remove {} temporarily?" +#~ msgstr "{} será removida até a próxima sincronização de conta.
    Para remover {} permanentemente, visite a Ultimaker Digital Factory.

    Tem certeza que deseja remover {} temporariamente?" #~ msgctxt "@label" #~ msgid "" @@ -7159,8 +7159,8 @@ msgstr "Estágio de Preparação" #~ msgstr "A webcam não está disponível porque você está monitorando uma impressora de nuvem." #~ msgctxt "@button" -#~ msgid "Ultimaker Digital Factory" -#~ msgstr "Ultimaker Digital Factory" +#~ msgid "UltiMaker Digital Factory" +#~ msgstr "UltiMaker Digital Factory" #~ msgctxt "@text:window, %1 is a profile name" #~ msgid "" @@ -7199,8 +7199,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Conectado por Nuvem" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "Conectar à Nuvem Ultimaker" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "Conectar à Nuvem UltiMaker" #~ msgctxt "@label" #~ msgid "You need to login first before you can rate" @@ -7227,16 +7227,16 @@ msgstr "Estágio de Preparação" #~ msgstr "Autor" #~ msgctxt "@description" -#~ msgid "Get plugins and materials verified by Ultimaker" -#~ msgstr "Obter complementos e materiais verificados pela Ultimaker" +#~ msgid "Get plugins and materials verified by UltiMaker" +#~ msgstr "Obter complementos e materiais verificados pela UltiMaker" #~ msgctxt "@label The argument is a username." #~ msgid "Hi %1" #~ msgstr "Oi, %1" #~ msgctxt "@button" -#~ msgid "Ultimaker account" -#~ msgstr "Conta da Ultimaker" +#~ msgid "UltiMaker account" +#~ msgstr "Conta da UltiMaker" #~ msgctxt "@button" #~ msgid "Sign out" @@ -7331,20 +7331,20 @@ msgstr "Estágio de Preparação" #~ msgstr "Idioma:" #~ msgctxt "@label" -#~ msgid "Ultimaker Cloud" -#~ msgstr "Ultimaker Cloud" +#~ msgid "UltiMaker Cloud" +#~ msgstr "UltiMaker Cloud" #~ msgctxt "@text" #~ msgid "The next generation 3D printing workflow" #~ msgstr "O fluxo de trabalho da nova geração de impressão 3D" #~ msgctxt "@text" -#~ msgid "- Send print jobs to Ultimaker printers outside your local network" -#~ msgstr "- Enviar trabalhos de impressão a impressoras Ultimaker fora da sua rede local" +#~ msgid "- Send print jobs to UltiMaker printers outside your local network" +#~ msgstr "- Enviar trabalhos de impressão a impressoras UltiMaker fora da sua rede local" #~ msgctxt "@text" -#~ msgid "- Store your Ultimaker Cura settings in the cloud for use anywhere" -#~ msgstr "- Armazenar seus ajustes do Ultimaker Cura na nuvem para uso em qualquer local" +#~ msgid "- Store your UltiMaker Cura settings in the cloud for use anywhere" +#~ msgstr "- Armazenar seus ajustes do UltiMaker Cura na nuvem para uso em qualquer local" #~ msgctxt "@text" #~ msgid "- Get exclusive access to print profiles from leading brands" @@ -7431,8 +7431,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Mostrar Todos Os Ajustes" #~ msgctxt "@title:window" -#~ msgid "Ultimaker Cura" -#~ msgstr "Ultimaker Cura" +#~ msgid "UltiMaker Cura" +#~ msgstr "UltiMaker Cura" #~ msgctxt "@title:window" #~ msgid "About Cura" @@ -7515,8 +7515,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Lista de verificação" #~ msgctxt "@label" -#~ msgid "Please select any upgrades made to this Ultimaker 2." -#~ msgstr "Por favor selecione quaisquer atualizações feitas nesta Ultimaker 2." +#~ msgid "Please select any upgrades made to this UltiMaker 2." +#~ msgstr "Por favor selecione quaisquer atualizações feitas nesta UltiMaker 2." #~ msgctxt "@label" #~ msgid "Olsson Block" @@ -7639,8 +7639,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Não foi possível iniciar novo trabalho de impressão." #~ msgctxt "@label" -#~ msgid "There is an issue with the configuration of your Ultimaker, which makes it impossible to start the print. Please resolve this issues before continuing." -#~ msgstr "Há um problema com a configuração de sua Ultimaker, o que torna impossível iniciar a impressão. Por favor resolva este problema antes de continuar." +#~ msgid "There is an issue with the configuration of your UltiMaker, which makes it impossible to start the print. Please resolve this issues before continuing." +#~ msgstr "Há um problema com a configuração de sua UltiMaker, o que torna impossível iniciar a impressão. Por favor resolva este problema antes de continuar." #~ msgctxt "@window:title" #~ msgid "Mismatched configuration" @@ -7731,20 +7731,20 @@ msgstr "Estágio de Preparação" #~ msgstr "Houve um erro ao conectar à nuvem." #~ msgctxt "@info:status" -#~ msgid "Uploading via Ultimaker Cloud" -#~ msgstr "Transferindo via Ultimaker Cloud" +#~ msgid "Uploading via UltiMaker Cloud" +#~ msgstr "Transferindo via UltiMaker Cloud" #~ msgctxt "@info:status Ultimaker Cloud is a brand name and shouldn't be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "Conectar à Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "Conectar à UltiMaker Cloud" #~ msgctxt "@action" #~ msgid "Don't ask me again for this printer." #~ msgstr "Não me pergunte novamente para esta impressora." #~ msgctxt "@info:status" -#~ msgid "You can now send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "Você agora pode enviar e monitorar trabalhoas de impressão de qualquer lugar usando sua conta Ultimaker." +#~ msgid "You can now send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "Você agora pode enviar e monitorar trabalhoas de impressão de qualquer lugar usando sua conta UltiMaker." #~ msgctxt "@info:status" #~ msgid "Connected!" @@ -7790,8 +7790,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Ortogonal" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers." -#~ msgstr "Gerencia conexões de rede a impressoras Ultimaker 3." +#~ msgid "Manages network connections to UltiMaker 3 printers." +#~ msgstr "Gerencia conexões de rede a impressoras UltiMaker 3." #~ msgctxt "name" #~ msgid "UM3 Network Connection" @@ -7895,8 +7895,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Enviando dados ao cluster remoto" #~ msgctxt "@info:status" -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "Conectar à Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "Conectar à UltiMaker Cloud" #~ msgctxt "@info" #~ msgid "Cura collects anonymized usage statistics." @@ -8031,20 +8031,20 @@ msgstr "Estágio de Preparação" #~ msgstr "Por favor selecione uma impressora conectada à rede para monitorar." #~ msgctxt "@info" -#~ msgid "Please connect your Ultimaker printer to your local network." -#~ msgstr "Por favor conecte sua impressora Ultimaker à sua rede local." +#~ msgid "Please connect your UltiMaker printer to your local network." +#~ msgstr "Por favor conecte sua impressora UltiMaker à sua rede local." #~ msgctxt "@text:window" -#~ msgid "Cura sends anonymous data to Ultimaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." -#~ msgstr "O Cura envia dados anonimamente para a Ultimaker de modo a aprimorar a qualidade de impressão e experiência de usuário. Abaixo há um exemplo de todos os dados que são enviados." +#~ msgid "Cura sends anonymous data to UltiMaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." +#~ msgstr "O Cura envia dados anonimamente para a UltiMaker de modo a aprimorar a qualidade de impressão e experiência de usuário. Abaixo há um exemplo de todos os dados que são enviados." #~ msgctxt "@text:window" #~ msgid "I don't want to send this data" #~ msgstr "Não desejo enviar estes dados" #~ msgctxt "@text:window" -#~ msgid "Allow sending this data to Ultimaker and help us improve Cura" -#~ msgstr "Permitir enviar estes dados à Ultimaker para ajudar a melhorar o Cura" +#~ msgid "Allow sending this data to UltiMaker and help us improve Cura" +#~ msgstr "Permitir enviar estes dados à UltiMaker para ajudar a melhorar o Cura" #~ msgctxt "@label" #~ msgid "No print selected" @@ -8246,8 +8246,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Eu não quero enviar estes dados" #~ msgctxt "@text:window" -#~ msgid "Allow sending these data to Ultimaker and help us improve Cura" -#~ msgstr "Permite o envio destes dados para a Ultimaker e nos auxilia a aprimorar o Cura" +#~ msgid "Allow sending these data to UltiMaker and help us improve Cura" +#~ msgstr "Permite o envio destes dados para a UltiMaker e nos auxilia a aprimorar o Cura" #~ msgctxt "@label" #~ msgid "Printer type:" @@ -8442,8 +8442,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Aderência à Mesa de Impressão" #~ msgctxt "@label" -#~ msgid "Need help improving your prints?
    Read the Ultimaker Troubleshooting Guides" -#~ msgstr "Precisa de ajuda para melhorar sua impressões?
    Leia os Guias de Resolução de Problema da Ultimaker" +#~ msgid "Need help improving your prints?
    Read the UltiMaker Troubleshooting Guides" +#~ msgstr "Precisa de ajuda para melhorar sua impressões?
    Leia os Guias de Resolução de Problema da UltiMaker" #~ msgctxt "@title:window" #~ msgid "Engine Log" @@ -8462,8 +8462,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Verificar compatibilidade" #~ msgctxt "@tooltip" -#~ msgid "Click to check the material compatibility on Ultimaker.com." -#~ msgstr "Clique para verificar a compatibilidade do material em Ultimaker.com." +#~ msgid "Click to check the material compatibility on UltiMaker.com." +#~ msgstr "Clique para verificar a compatibilidade do material em UltiMaker.com." #~ msgctxt "description" #~ msgid "Shows changes since latest checked version." @@ -8582,16 +8582,16 @@ msgstr "Estágio de Preparação" #~ msgstr "Contato" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of Ultimaker 3 printers." -#~ msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras Ultimaker 3." +#~ msgid "This printer is not set up to host a group of UltiMaker 3 printers." +#~ msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras UltiMaker 3." #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 Ultimaker 3 printers." -#~ msgstr "Esta impressora hospeda um grupo de %1 impressoras Ultimaker 3." +#~ msgid "This printer is the host for a group of %1 UltiMaker 3 printers." +#~ msgstr "Esta impressora hospeda um grupo de %1 impressoras UltiMaker 3." #~ msgctxt "@label: arg 1 is group name" -#~ msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "%1 não está configurada para hospedar um grupo de impressora Ultimaker 3 conectadas" +#~ msgid "%1 is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "%1 não está configurada para hospedar um grupo de impressora UltiMaker 3 conectadas" #~ msgctxt "@label link to connect manager" #~ msgid "Add/Remove printers" @@ -8857,12 +8857,12 @@ msgstr "Estágio de Preparação" #~ msgstr "Navegador de complementos" #~ msgctxt "@label" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@title:window" #~ msgid "SolidWorks: Export wizard" @@ -9013,8 +9013,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Provê um modo de alterar as configurações da máquina (tais como volume de impressão, tamanho de bico, etc)" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "Gerencia conexões de rede a impressoras Ultimaker 3" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "Gerencia conexões de rede a impressoras UltiMaker 3" #~ msgctxt "description" #~ msgid "Gives you the possibility to open certain files using SolidWorks itself. Conversion is done by this plugin and additional optimizations." @@ -9053,8 +9053,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Pergunta ao usuário uma única vez sobre concordância com a licença" #~ msgctxt "description" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "Provê ações de máquina para Ultimaker (tais como assistente de nivelamento de mesa, seleção de atualizações, etc)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "Provê ações de máquina para UltiMaker (tais como assistente de nivelamento de mesa, seleção de atualizações, etc)" #~ msgctxt "@item:inlistbox" #~ msgid "GCode File" @@ -9160,12 +9160,12 @@ msgstr "Estágio de Preparação" #~ msgid "Resuming print..." #~ msgstr "Continuando impressão..." -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras Ultimaker 3 conectadas." +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras UltiMaker 3 conectadas." #~ msgctxt "Count is number of printers." -#~ msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." -#~ msgstr "Esta impressora hospeda um grupo de {count} impressoras Ultimaker 3 conectadas." +#~ msgid "This printer is the host for a group of {count} connected UltiMaker 3 printers." +#~ msgstr "Esta impressora hospeda um grupo de {count} impressoras UltiMaker 3 conectadas." #~ msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." #~ msgstr "{printer_name} acabou de imprimir '{job_name}'. Por favor colete a impressão e confirme esvaziamento da mesa." @@ -9174,8 +9174,8 @@ msgstr "Estágio de Preparação" #~ msgstr "{printer_name} está reservada para imprimir '{job_name}'. Por favor altere a configuração da impressora para combinar com este trabalho para que ela comece a imprimir." #~ msgctxt "@info:status" -#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "Incapaz de enviar novo trabalho de impressão: esta impressora 3D (ainda) não está configurada para hospedar um grupo de impressoras Ultimaker 3 conectadas." +#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "Incapaz de enviar novo trabalho de impressão: esta impressora 3D (ainda) não está configurada para hospedar um grupo de impressoras UltiMaker 3 conectadas." #~ msgctxt "@info:status" #~ msgid "Unable to send print job to group {cluster_name}." @@ -9300,12 +9300,12 @@ msgstr "Estágio de Preparação" #~ msgstr "Código de erro desconhecido: %1" #~ msgctxt "@label Printer name" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label Printer name" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@label Printer status" #~ msgid "Unknown" @@ -9580,12 +9580,12 @@ msgstr "Estágio de Preparação" #~ msgstr "Ok" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras Ultimaker 3 conectadas." +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "Esta impressora não está configurada para hospedar um grupo de impressoras UltiMaker 3 conectadas." #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" -#~ msgstr "Esta impressora hospeda um grupo de %1 impressoras Ultimaker 3 conectadas" +#~ msgid "This printer is the host for a group of %1 connected UltiMaker 3 printers" +#~ msgstr "Esta impressora hospeda um grupo de %1 impressoras UltiMaker 3 conectadas" #~ msgctxt "@label" #~ msgid "Completed on: " @@ -9901,8 +9901,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Provê suporte a conexão a quente e gravação em unidade removível." #~ msgctxt "@info:whatsthis" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "Gerencia as conexões de rede em impressoras Ultimaker 3" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "Gerencia as conexões de rede em impressoras UltiMaker 3" #~ msgctxt "@label" #~ msgid "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}" @@ -10065,12 +10065,12 @@ msgstr "Estágio de Preparação" #~ msgstr "Provê suporte para escrever arquivos 3MF." #~ msgctxt "@label" -#~ msgid "Ultimaker machine actions" -#~ msgstr "Ações de máquina Ultimaker" +#~ msgid "UltiMaker machine actions" +#~ msgstr "Ações de máquina UltiMaker" #~ msgctxt "@info:whatsthis" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "Provê ações de máquina para impressoras Ultimaker (tais como assistente de nivelamento de mesa, seleção de atualizações, etc.)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "Provê ações de máquina para impressoras UltiMaker (tais como assistente de nivelamento de mesa, seleção de atualizações, etc.)" #~ msgctxt "@label" #~ msgid "Cura Profile Reader" @@ -10109,8 +10109,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Se a sua impressora não está listada, leia o guia de resolução de problemas em impressão de rede" #~ msgctxt "@item:inlistbox" -#~ msgid "Ultimaker" -#~ msgstr "Ultimaker" +#~ msgid "UltiMaker" +#~ msgstr "UltiMaker" #~ msgctxt "@label" #~ msgid "Support library for scientific computing " @@ -10259,8 +10259,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Habilitar estruturas de suporte. Estas estruturas apóiam partes do modelo que tenham seções pendentes." #~ msgctxt "@label" -#~ msgid "Need help improving your prints? Read the Ultimaker Troubleshooting Guides" -#~ msgstr "Precisa de ajuda para melhorar suas impressões? Leia o Guia de Solução de Problemas da Ultimaker." +#~ msgid "Need help improving your prints? Read the UltiMaker Troubleshooting Guides" +#~ msgstr "Precisa de ajuda para melhorar suas impressões? Leia o Guia de Solução de Problemas da UltiMaker." #~ msgctxt "@info:status" #~ msgid "Connected over the network to {0}. Please approve the access request on the printer." diff --git a/resources/i18n/pt_PT/cura.po b/resources/i18n/pt_PT/cura.po index c44a6a62ba..594336f7f1 100644 --- a/resources/i18n/pt_PT/cura.po +++ b/resources/i18n/pt_PT/cura.po @@ -443,8 +443,8 @@ msgstr "Não é possível iniciar um novo processo de início de sessão. Verifi #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Não é possível aceder ao servidor da conta Ultimaker." +msgid "Unable to reach the UltiMaker account server." +msgstr "Não é possível aceder ao servidor da conta UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -733,15 +733,15 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    Ups, o Ultimaker Cura encontrou um possível problema.

    \n

    Foi encontrado um erro irrecuperável durante o arranque da" +msgstr "

    Ups, o UltiMaker Cura encontrou um possível problema.

    \n

    Foi encontrado um erro irrecuperável durante o arranque da" " aplicação. Este pode ter sido causado por alguns ficheiros de configuração incorrectos. Sugerimos que faça um backup e reponha a sua configuração.

    \n" "

    Os backups estão localizados na pasta de configuração.

    \n

    Por favor envie-nos este Relatório de Falhas" " para podermos resolver o problema.

    \n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Enviar relatório de falhas para a Ultimaker" +msgid "Send crash report to UltiMaker" +msgstr "Enviar relatório de falhas para a UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -941,7 +941,7 @@ msgstr "Erro de rede" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Nova impressora detetada a partir da sua conta Ultimaker" msgstr[1] "Novas impressoras detetadas a partir da sua conta Ultimaker" @@ -1068,8 +1068,8 @@ msgstr[1] "Estas impressoras não estão associadas à Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1099,7 +1099,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Está a tentar ligar a uma impressora que não tem o Ultimaker Connect. Atualize a impressora para o firmware mais recente." +msgstr "Está a tentar ligar a uma impressora que não tem o UltiMaker Connect. Atualize a impressora para o firmware mais recente." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1216,8 +1216,8 @@ msgstr "Monitorizar a impressão" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Controle a impressão no Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Controle a impressão no UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1327,8 +1327,8 @@ msgstr "Não é possível escrever no ficheiro UFP:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Arquivo Ultimaker Format" +msgid "UltiMaker Format Package" +msgstr "Arquivo UltiMaker Format" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1452,8 +1452,8 @@ msgstr "Pretende sincronizar o material e os pacotes de software com a sua conta #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Foram detetadas alterações da sua conta Ultimaker" +msgid "Changes detected from your UltiMaker account" +msgstr "Foram detetadas alterações da sua conta UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1615,8 +1615,8 @@ msgstr "Reportar um erro" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Reportar um erro no registo de problemas do Ultimaker Cura." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Reportar um erro no registo de problemas do UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1765,7 +1765,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "O ficheiro de projeto {0} foi criado utilizando perfis que são desconhecidos para esta versão do Ultimaker Cura." +msgstr "O ficheiro de projeto {0} foi criado utilizando perfis que são desconhecidos para esta versão do UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2440,7 +2440,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Não é possível visualizar os feeds das câmaras das impressoras na cloud a partir do Ultimaker Cura. Clique em \"Gerir impressora\" para visitar o Ultimaker" +msgstr "Não é possível visualizar os feeds das câmaras das impressoras na cloud a partir do UltiMaker Cura. Clique em \"Gerir impressora\" para visitar o Ultimaker" " Digital Factory e ver esta câmara." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2507,8 +2507,8 @@ msgstr "Primeira disponível" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Monitorize as suas impressoras de qualquer lugar usando a Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Monitorize as suas impressoras de qualquer lugar usando a UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2824,7 +2824,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "O Ultimaker Cura recolhe dados anónimos para melhorar a qualidade da impressão e a experiência do utilizador. Segue-se um exemplo de todos os dados partilhados:" +msgstr "O UltiMaker Cura recolhe dados anónimos para melhorar a qualidade da impressão e a experiência do utilizador. Segue-se um exemplo de todos os dados partilhados:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2848,8 +2848,8 @@ msgstr "Guardar projeto Cura" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Selecione quaisquer atualizações realizadas a esta Ultimaker Original" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Selecione quaisquer atualizações realizadas a esta UltiMaker Original" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2955,7 +2955,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Simplifique o seu fluxo de trabalho e personalize a sua utilização do Ultimaker Cura com plug-ins criados pela nossa incrível comunidade de utilizadores." +msgstr "Simplifique o seu fluxo de trabalho e personalize a sua utilização do UltiMaker Cura com plug-ins criados pela nossa incrível comunidade de utilizadores." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -3018,7 +3018,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Selecione e instale perfis de materiais otimizados para as impressoras 3D Ultimaker." +msgstr "Selecione e instale perfis de materiais otimizados para as impressoras 3D UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3139,18 +3139,18 @@ msgstr "Carregar mais" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Plug-in Aprovado pela Ultimaker" +msgid "UltiMaker Verified Plug-in" +msgstr "Plug-in Aprovado pela UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Material Certificado pela Ultimaker" +msgid "UltiMaker Certified Material" +msgstr "Material Certificado pela UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Pacote Aprovado pela Ultimaker" +msgid "UltiMaker Verified Package" +msgstr "Pacote Aprovado pela UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3162,7 +3162,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Faça aqui a gestão dos plug-ins e perfis de materiais do Ultimaker Cura. Certifique-se de que mantém os plug-ins atualizados e que efetua regularmente" +msgstr "Faça aqui a gestão dos plug-ins e perfis de materiais do UltiMaker Cura. Certifique-se de que mantém os plug-ins atualizados e que efetua regularmente" " uma cópia de segurança da sua configuração." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4489,7 +4489,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "Podem alguns dados anónimos sobre a impressão ser enviados para a Ultimaker? Não são enviadas, nem armazenadas, quaisquer informações pessoais, incluindo" +msgstr "Podem alguns dados anónimos sobre a impressão ser enviados para a UltiMaker? Não são enviadas, nem armazenadas, quaisquer informações pessoais, incluindo" " modelos, endereços IP ou outro tipo de identificação pessoal." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 @@ -4807,8 +4807,8 @@ msgstr "Resolução de problemas" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Inicie a sessão na plataforma Ultimaker" +msgid "Sign in to the UltiMaker platform" +msgstr "Inicie a sessão na plataforma UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4822,8 +4822,8 @@ msgstr "Efetue uma cópia de segurança e sincronize as definições de materiai #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Partilhe ideias e obtenha ajuda dos mais de 48.000 utilizadores da Comunidade Ultimaker" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Partilhe ideias e obtenha ajuda dos mais de 48.000 utilizadores da Comunidade UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4832,20 +4832,20 @@ msgstr "Ignorar" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Crie uma Conta Ultimaker gratuita" +msgid "Create a free UltiMaker Account" +msgstr "Crie uma Conta UltiMaker gratuita" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Ajude-nos a melhorar o Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "Ajude-nos a melhorar o UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "O Ultimaker Cura recolhe dados anónimos para melhorar a qualidade da impressão e a experiência do utilizador, incluindo:" +msgstr "O UltiMaker Cura recolhe dados anónimos para melhorar a qualidade da impressão e a experiência do utilizador, incluindo:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4871,7 +4871,7 @@ msgstr "Definições de impressão" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Os dados recolhidos pelo Ultimaker Cura não conterão quaisquer informações pessoais." +msgstr "Os dados recolhidos pelo UltiMaker Cura não conterão quaisquer informações pessoais." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4941,8 +4941,8 @@ msgstr "Não foi possível ligar ao dispositivo." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Não se consegue ligar a uma impressora Ultimaker?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "Não se consegue ligar a uma impressora UltiMaker?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4963,15 +4963,15 @@ msgstr "Ligar" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Bem-vindo ao Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Bem-vindo ao UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Siga estes passos para configurar o Ultimaker Cura. Este processo irá demorar apenas alguns momentos." +msgstr "Siga estes passos para configurar o UltiMaker Cura. Este processo irá demorar apenas alguns momentos." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5671,7 +5671,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "O Cura foi desenvolvido pela Ultimaker B.V. em colaboração com a comunidade.\nO Cura tem o prazer de utilizar os seguintes projetos open source:" +msgstr "O Cura foi desenvolvido pela UltiMaker B.V. em colaboração com a comunidade.\nO Cura tem o prazer de utilizar os seguintes projetos open source:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5856,8 +5856,8 @@ msgstr "As minhas impressoras" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Monitorize as impressoras no Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Monitorize as impressoras no UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5876,23 +5876,23 @@ msgstr "Monitorize os trabalhos de impressão e volte a imprimir a partir do his #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Tire mais partido do Ultimaker Cura com plug-ins e perfis de materiais." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Tire mais partido do UltiMaker Cura com plug-ins e perfis de materiais." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Torne-se um perito em impressão 3D com os cursos de e-learning da Ultimaker." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Torne-se um perito em impressão 3D com os cursos de e-learning da UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Suporte da Ultimaker" +msgid "UltiMaker support" +msgstr "Suporte da UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Saiba como começar a utilizar o Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Saiba como começar a utilizar o UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5901,8 +5901,8 @@ msgstr "Faça uma pergunta" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Consulte a Comunidade Ultimaker." +msgid "Consult the UltiMaker Community." +msgstr "Consulte a Comunidade UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5916,8 +5916,8 @@ msgstr "Informe os programadores quando houver algum problema." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Visite o site da Ultimaker." +msgid "Visit the UltiMaker website." +msgstr "Visite o site da UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6237,8 +6237,8 @@ msgstr "- Adicione definições de materiais e plug-ins do Marketplace\n- Efetue #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Crie uma conta Ultimaker gratuita" +msgid "Create a free UltiMaker account" +msgstr "Crie uma conta UltiMaker gratuita" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6252,8 +6252,8 @@ msgstr "Atualização mais recente: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Conta Ultimaker" +msgid "UltiMaker Account" +msgstr "Conta UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6297,7 +6297,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Esta impressora não está associada à sua conta. Visite a Ultimaker Digital Factory para estabelecer uma ligação." +msgstr "Esta impressora não está associada à sua conta. Visite a UltiMaker Digital Factory para estabelecer uma ligação." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6477,13 +6477,13 @@ msgstr "Pós-Processamento" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Gere as ligações de rede com as impressoras em rede Ultimaker." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Gere as ligações de rede com as impressoras em rede UltiMaker." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ligação de rede Ultimaker" +msgid "UltiMaker Network Connection" +msgstr "Ligação de rede UltiMaker" #: /3MFWriter/plugin.json msgctxt "description" @@ -6517,8 +6517,8 @@ msgstr "Informações do seccionamento" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Permite a gravação de arquivos Ultimaker Format." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Permite a gravação de arquivos UltiMaker Format." #: /UFPWriter/plugin.json msgctxt "name" @@ -6534,8 +6534,8 @@ msgstr "Liga à Biblioteca Digital, permitindo ao Cura abrir ficheiros da Biblio #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Biblioteca Digital Ultimaker" +msgid "UltiMaker Digital Library" +msgstr "Biblioteca Digital UltiMaker" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6572,12 +6572,12 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Disponibiliza funções especificas para as máquinas Ultimaker (tais como, o assistente de nivelamento da base, seleção de atualizações, etc.)." +msgstr "Disponibiliza funções especificas para as máquinas UltiMaker (tais como, o assistente de nivelamento da base, seleção de atualizações, etc.)." #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Funções para impressoras Ultimaker" +msgid "UltiMaker machine actions" +msgstr "Funções para impressoras UltiMaker" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6594,7 +6594,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "Faz a gestão de extensões da aplicação e permite a navegação das extensões a partir do website da Ultimaker." +msgstr "Faz a gestão de extensões da aplicação e permite a navegação das extensões a partir do website da UltiMaker." #: /Marketplace/plugin.json msgctxt "name" @@ -6946,8 +6946,8 @@ msgstr "Gravador de G-code" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Fornece suporte para ler pacotes de formato Ultimaker." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Fornece suporte para ler pacotes de formato UltiMaker." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 3ef33a8dcd..e605f48f5b 100644 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -443,8 +443,8 @@ msgstr "Невозможно начать новый вход в систему. #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Нет связи с сервером учетных записей Ultimaker." +msgid "Unable to reach the UltiMaker account server." +msgstr "Нет связи с сервером учетных записей UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -729,14 +729,14 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    В ПО Ultimaker Cura обнаружена ошибка.

    \n

    Во время запуска обнаружена неустранимая ошибка. Возможно, она вызвана некоторыми" +msgstr "

    В ПО UltiMaker Cura обнаружена ошибка.

    \n

    Во время запуска обнаружена неустранимая ошибка. Возможно, она вызвана некоторыми" " файлами конфигурации с неправильными данными. Рекомендуется создать резервную копию конфигурации и сбросить ее.

    \n

    Резервные" " копии хранятся в папке конфигурации.

    \n

    Отправьте нам этот отчет о сбое для устранения проблемы.

    \n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Отправить отчет о сбое в Ultimaker" +msgid "Send crash report to UltiMaker" +msgstr "Отправить отчет о сбое в UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -936,7 +936,7 @@ msgstr "Ошибка сети" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "New printer detected from your Ultimaker account" msgstr[1] "New printers detected from your Ultimaker account" @@ -1066,8 +1066,8 @@ msgstr[2] "Эти принтеры не подключены Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1098,7 +1098,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Вы пытаетесь подключиться к принтеру, на котором не работает Ultimaker Connect. Обновите прошивку принтера до последней версии." +msgstr "Вы пытаетесь подключиться к принтеру, на котором не работает UltiMaker Connect. Обновите прошивку принтера до последней версии." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1216,8 +1216,8 @@ msgstr "Мониторинг печати" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Отслеживайте печать в Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "Отслеживайте печать в UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1327,8 +1327,8 @@ msgstr "Невозможно записать в файл UFP:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Пакет формата Ultimaker" +msgid "UltiMaker Format Package" +msgstr "Пакет формата UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1451,8 +1451,8 @@ msgstr "Хотите синхронизировать пакеты матери #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "В вашей учетной записи Ultimaker обнаружены изменения" +msgid "Changes detected from your UltiMaker account" +msgstr "В вашей учетной записи UltiMaker обнаружены изменения" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1614,8 +1614,8 @@ msgstr "Сообщить об ошибке" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Сообщите об ошибке в системе отслеживания проблем Ultimaker Cura." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "Сообщите об ошибке в системе отслеживания проблем UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1764,7 +1764,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "Файл проекта {0} создан с использованием профилей, несовместимых с данной версией Ultimaker Cura." +msgstr "Файл проекта {0} создан с использованием профилей, несовместимых с данной версией UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2440,7 +2440,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Каналы веб-камеры для облачных принтеров невозможно просмотреть из Ultimaker Cura. Щелкните «Управление принтером», чтобы просмотреть эту веб-камеру на" +msgstr "Каналы веб-камеры для облачных принтеров невозможно просмотреть из UltiMaker Cura. Щелкните «Управление принтером», чтобы просмотреть эту веб-камеру на" " сайте Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2507,8 +2507,8 @@ msgstr "Первое доступное" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Следите за своими принтерами откуда угодно с помощью Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "Следите за своими принтерами откуда угодно с помощью UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2823,7 +2823,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura собирает анонимные данные для повышения качества печати и улучшения взаимодействия с пользователем. Ниже приведен пример всех передаваемых" +msgstr "UltiMaker Cura собирает анонимные данные для повышения качества печати и улучшения взаимодействия с пользователем. Ниже приведен пример всех передаваемых" " данных:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 @@ -2848,8 +2848,8 @@ msgstr "Сохранить проект Cura" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Пожалуйста, укажите любые изменения, внесённые в Ultimaker Original" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Пожалуйста, укажите любые изменения, внесённые в UltiMaker Original" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2955,7 +2955,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Оптимизируйте свои рабочие процессы и настройте Ultimaker Cura с помощью встраиваемых модулей, разработанных экспертами нашего замечательного сообщества." +msgstr "Оптимизируйте свои рабочие процессы и настройте UltiMaker Cura с помощью встраиваемых модулей, разработанных экспертами нашего замечательного сообщества." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -3018,7 +3018,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Выберите и установите профили материалов, оптимизированные для 3D-принтеров Ultimaker." +msgstr "Выберите и установите профили материалов, оптимизированные для 3D-принтеров UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3139,18 +3139,18 @@ msgstr "Загрузить еще" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Проверенный плагин Ultimaker" +msgid "UltiMaker Verified Plug-in" +msgstr "Проверенный плагин UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Сертифицированный материал Ultimaker" +msgid "UltiMaker Certified Material" +msgstr "Сертифицированный материал UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Проверенный пакет Ultimaker" +msgid "UltiMaker Verified Package" +msgstr "Проверенный пакет UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3162,7 +3162,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Здесь можно управлять встраиваемыми модулями Ultimaker Cura и профилями материалов. Регулярно обновляйте встраиваемые модули и создавайте резервные копии" +msgstr "Здесь можно управлять встраиваемыми модулями UltiMaker Cura и профилями материалов. Регулярно обновляйте встраиваемые модули и создавайте резервные копии" " настроек." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4491,7 +4491,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "Можно ли отправлять анонимную информацию о вашей печати в Ultimaker? Следует отметить, что ни модели, ни IP-адреса и никакая другая персональная информация" +msgstr "Можно ли отправлять анонимную информацию о вашей печати в UltiMaker? Следует отметить, что ни модели, ни IP-адреса и никакая другая персональная информация" " не будет отправлена или сохранена." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 @@ -4810,8 +4810,8 @@ msgstr "Поиск и устранение неисправностей" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Войдите на платформу Ultimaker" +msgid "Sign in to the UltiMaker platform" +msgstr "Войдите на платформу UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4825,8 +4825,8 @@ msgstr "Выполняйте резервное копирование и син #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Делитесь идеями и получайте помощь от 48 000 пользователей в сообществе Ultimaker" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "Делитесь идеями и получайте помощь от 48 000 пользователей в сообществе UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4835,20 +4835,20 @@ msgstr "Пропустить" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Создайте бесплатную учетную запись Ultimaker" +msgid "Create a free UltiMaker Account" +msgstr "Создайте бесплатную учетную запись UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Помогите нам улучшить Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "Помогите нам улучшить UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura собирает анонимные данные для повышения качества печати и улучшения взаимодействия с пользователем, включая перечисленные ниже:" +msgstr "UltiMaker Cura собирает анонимные данные для повышения качества печати и улучшения взаимодействия с пользователем, включая перечисленные ниже:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4874,7 +4874,7 @@ msgstr "Параметры печати" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Данные, собранные Ultimaker Cura, не содержат каких-либо персональных данных." +msgstr "Данные, собранные UltiMaker Cura, не содержат каких-либо персональных данных." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4944,8 +4944,8 @@ msgstr "Не удалось подключиться к устройству." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Не удается подключиться к принтеру Ultimaker?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "Не удается подключиться к принтеру UltiMaker?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4966,15 +4966,15 @@ msgstr "Подключить" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Приветствуем в Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "Приветствуем в UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Выполните указанные ниже действия для настройки\nUltimaker Cura. Это займет немного времени." +msgstr "Выполните указанные ниже действия для настройки\nUltiMaker Cura. Это займет немного времени." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5677,7 +5677,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura разработана компанией Ultimaker B.V. совместно с сообществом.\nCura использует следующие проекты с открытым исходным кодом:" +msgstr "Cura разработана компанией UltiMaker B.V. совместно с сообществом.\nCura использует следующие проекты с открытым исходным кодом:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5862,8 +5862,8 @@ msgstr "Мои принтеры" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Следите за своими принтерами в Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "Следите за своими принтерами в UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5882,23 +5882,23 @@ msgstr "Отслеживайте задания печати и запускай #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Расширяйте возможности Ultimaker Cura за счет плагинов и профилей материалов." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "Расширяйте возможности UltiMaker Cura за счет плагинов и профилей материалов." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Пройдите электронное обучение Ultimaker и станьте экспертом в области 3D-печати." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "Пройдите электронное обучение UltiMaker и станьте экспертом в области 3D-печати." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Поддержка Ultimaker" +msgid "UltiMaker support" +msgstr "Поддержка UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Узнайте, как начать работу с Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "Узнайте, как начать работу с UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5907,8 +5907,8 @@ msgstr "Задать вопрос" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Посоветуйтесь со специалистами в сообществе Ultimaker." +msgid "Consult the UltiMaker Community." +msgstr "Посоветуйтесь со специалистами в сообществе UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5922,8 +5922,8 @@ msgstr "Сообщите разработчикам о неполадках." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Посетите веб-сайт Ultimaker." +msgid "Visit the UltiMaker website." +msgstr "Посетите веб-сайт UltiMaker." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6239,8 +6239,8 @@ msgstr "- Добавляйте настройки материалов и пла #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Создайте бесплатную учетную запись Ultimaker" +msgid "Create a free UltiMaker account" +msgstr "Создайте бесплатную учетную запись UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6254,8 +6254,8 @@ msgstr "Последнее обновление: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Учетная запись Ultimaker" +msgid "UltiMaker Account" +msgstr "Учетная запись UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6299,7 +6299,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Этот принтер не связан с вашей учетной записью. Посетите сайт Ultimaker Digital Factory, чтобы установить привязку." +msgstr "Этот принтер не связан с вашей учетной записью. Посетите сайт UltiMaker Digital Factory, чтобы установить привязку." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6479,13 +6479,13 @@ msgstr "Пост обработка" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Управляет сетевыми соединениями с сетевыми принтерами Ultimaker 3." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "Управляет сетевыми соединениями с сетевыми принтерами UltiMaker 3." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Соединение с сетью Ultimaker" +msgid "UltiMaker Network Connection" +msgstr "Соединение с сетью UltiMaker" #: /3MFWriter/plugin.json msgctxt "description" @@ -6519,8 +6519,8 @@ msgstr "Информация о нарезке модели" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Предоставляет поддержку для записи пакетов формата Ultimaker." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "Предоставляет поддержку для записи пакетов формата UltiMaker." #: /UFPWriter/plugin.json msgctxt "name" @@ -6536,8 +6536,8 @@ msgstr "Подключается к цифровой библиотеке, по #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Цифровая библиотека Ultimaker" +msgid "UltiMaker Digital Library" +msgstr "Цифровая библиотека UltiMaker" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6574,12 +6574,12 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Предоставляет дополнительные возможности для принтеров Ultimaker (такие как мастер выравнивания стола, выбора обновления и так далее)" +msgstr "Предоставляет дополнительные возможности для принтеров UltiMaker (такие как мастер выравнивания стола, выбора обновления и так далее)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Действия с принтерами Ultimaker" +msgid "UltiMaker machine actions" +msgstr "Действия с принтерами UltiMaker" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6596,7 +6596,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "Позволяет управлять расширениями приложения и просматривать расширения с веб-сайта Ultimaker." +msgstr "Позволяет управлять расширениями приложения и просматривать расширения с веб-сайта UltiMaker." #: /Marketplace/plugin.json msgctxt "name" @@ -6948,8 +6948,8 @@ msgstr "Средство записи G-кода" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Предоставляет поддержку для чтения пакетов формата Ultimaker." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "Предоставляет поддержку для чтения пакетов формата UltiMaker." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index 15f440557b..5d3f5ee9b9 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -443,8 +443,8 @@ msgstr "Yeni bir oturum açma işlemi başlatılamıyor. Başka bir aktif oturum #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "Ultimaker hesabı sunucusuna ulaşılamadı." +msgid "Unable to reach the UltiMaker account server." +msgstr "UltiMaker hesabı sunucusuna ulaşılamadı." #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -729,14 +729,14 @@ msgid "" "

    Please send us this Crash Report to fix the problem.\n" " " -msgstr "

    Ultimaker Cura doğru görünmeyen bir şeyle karşılaştı.

    \n

    Başlatma esnasında kurtarılamaz bir hata ile karşılaştık. Muhtemelen" +msgstr "

    UltiMaker Cura doğru görünmeyen bir şeyle karşılaştı.

    \n

    Başlatma esnasında kurtarılamaz bir hata ile karşılaştık. Muhtemelen" " bazı hatalı yapılandırma dosyalarından kaynaklanıyordu. Yapılandırmanızı yedekleyip sıfırlamanızı öneriyoruz.

    \n

    Yedekler yapılandırma" " klasöründe bulunabilir.

    \n

    Sorunu düzeltmek için lütfen bu Çökme Raporunu bize gönderin.

    \n " #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "Çökme raporunu Ultimaker’a gönder" +msgid "Send crash report to UltiMaker" +msgstr "Çökme raporunu UltiMaker’a gönder" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -936,7 +936,7 @@ msgstr "Ağ hatası" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "Ultimaker hesabınızdan yeni yazıcı tespit edildi" msgstr[1] "Ultimaker hesabınızdan yeni yazıcılar tespit edildi" @@ -1064,8 +1064,8 @@ msgstr[1] "Bu yazıcılar Digital Factory ile bağlantılandırılmamış:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1095,7 +1095,7 @@ msgctxt "@info:status" msgid "" "You are attempting to connect to a printer that is not running Ultimaker " "Connect. Please update the printer to the latest firmware." -msgstr "Ultimaker Connect çalıştırmayan bir yazıcıya bağlanmaya çalışıyorsunuz. Lütfen yazıcının donanım yazılımını son sürüme güncelleyin." +msgstr "UltiMaker Connect çalıştırmayan bir yazıcıya bağlanmaya çalışıyorsunuz. Lütfen yazıcının donanım yazılımını son sürüme güncelleyin." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1212,8 +1212,8 @@ msgstr "Baskı izleme" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory'de baskıyı izleyin" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory'de baskıyı izleyin" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1323,8 +1323,8 @@ msgstr "UFP dosyasına yazamıyor:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimaker Biçim Paketi" +msgid "UltiMaker Format Package" +msgstr "UltiMaker Biçim Paketi" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1447,8 +1447,8 @@ msgstr "Malzeme ve yazılım paketlerini hesabınızla senkronize etmek istiyor #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "Ultimaker hesabınızda değişiklik tespit edildi" +msgid "Changes detected from your UltiMaker account" +msgstr "UltiMaker hesabınızda değişiklik tespit edildi" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1610,8 +1610,8 @@ msgstr "Hata bildirin" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "Ultimaker Cura'nın sorun izleyicisinde hata bildirin." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "UltiMaker Cura'nın sorun izleyicisinde hata bildirin." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1759,7 +1759,7 @@ msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " "unknown to this version of Ultimaker Cura." -msgstr "{0} proje dosyası, Ultimaker Cura'nın bu sürümünde bilinmeyen profiller kullanılarak yapılmış." +msgstr "{0} proje dosyası, UltiMaker Cura'nın bu sürümünde bilinmeyen profiller kullanılarak yapılmış." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2434,7 +2434,7 @@ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " "\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Bulut yazıcıları için web kamerası akışları Ultimaker Cura'dan görüntülenemez. Ultimaker Digital Factory'i ziyaret etmek ve bu web kamerasını görüntülemek" +msgstr "Bulut yazıcıları için web kamerası akışları UltiMaker Cura'dan görüntülenemez. Ultimaker Digital Factory'i ziyaret etmek ve bu web kamerasını görüntülemek" " için \"Yazıcıyı Yönet\"i tıklayın." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2501,8 +2501,8 @@ msgstr "İlk kullanılabilen" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory'yi kullanarak yazıcılarınızı her yerden izleyin" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory'yi kullanarak yazıcılarınızı her yerden izleyin" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2817,7 +2817,7 @@ msgctxt "@text:window" msgid "" "Ultimaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura, yazdırma kalitesini ve kullanıcı deneyimini iyileştirmek için anonim veri toplar. Aşağıda, paylaşılan tüm verilerin bir örneği verilmiştir:" +msgstr "UltiMaker Cura, yazdırma kalitesini ve kullanıcı deneyimini iyileştirmek için anonim veri toplar. Aşağıda, paylaşılan tüm verilerin bir örneği verilmiştir:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2841,8 +2841,8 @@ msgstr "Cura projesini kaydet" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "Lütfen Ultimaker Original’e yapılan herhangi bir yükseltmeyi seçin" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "Lütfen UltiMaker Original’e yapılan herhangi bir yükseltmeyi seçin" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2948,7 +2948,7 @@ msgctxt "@text" msgid "" "Streamline your workflow and customize your Ultimaker Cura experience with " "plugins contributed by our amazing community of users." -msgstr "Muhteşem kullanıcı topluluğumuzun katkıda bulunduğu eklentilerle iş akışınızı kolaylaştırın ve Ultimaker Cura deneyiminizi kendinize uygun hale getirin." +msgstr "Muhteşem kullanıcı topluluğumuzun katkıda bulunduğu eklentilerle iş akışınızı kolaylaştırın ve UltiMaker Cura deneyiminizi kendinize uygun hale getirin." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -3011,7 +3011,7 @@ msgctxt "@text" msgid "" "Select and install material profiles optimised for your Ultimaker 3D " "printers." -msgstr "Ultimaker 3D yazıcılarınız için optimize edilmiş malzeme profillerini seçin ve yükleyin." +msgstr "UltiMaker 3D yazıcılarınız için optimize edilmiş malzeme profillerini seçin ve yükleyin." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -3132,18 +3132,18 @@ msgstr "Daha fazla yükle" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Ultimaker Tarafından Doğrulanmış Eklenti" +msgid "UltiMaker Verified Plug-in" +msgstr "UltiMaker Tarafından Doğrulanmış Eklenti" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Ultimaker Sertifikalı Malzeme" +msgid "UltiMaker Certified Material" +msgstr "UltiMaker Sertifikalı Malzeme" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Ultimaker Tarafından Doğrulanmış Paket" +msgid "UltiMaker Verified Package" +msgstr "UltiMaker Tarafından Doğrulanmış Paket" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3155,7 +3155,7 @@ msgctxt "@text" msgid "" "Manage your Ultimaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." -msgstr "Ultimaker Cura eklentilerinizi ve malzeme profillerini burada yönetin. Eklentilerinizi güncel tuttuğunuzdan ve ayarınızı düzenli olarak yedeklediğinizden" +msgstr "UltiMaker Cura eklentilerinizi ve malzeme profillerini burada yönetin. Eklentilerinizi güncel tuttuğunuzdan ve ayarınızı düzenli olarak yedeklediğinizden" " emin olun." #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4480,7 +4480,7 @@ msgid "" "Should anonymous data about your print be sent to Ultimaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." -msgstr "Yazdırmanızdaki anonim veriler Ultimaker’a gönderilmeli mi? Unutmayın; hiçbir model, IP adresi veya diğer kişiye özgü bilgiler gönderilmez veya saklanmaz." +msgstr "Yazdırmanızdaki anonim veriler UltiMaker’a gönderilmeli mi? Unutmayın; hiçbir model, IP adresi veya diğer kişiye özgü bilgiler gönderilmez veya saklanmaz." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4797,8 +4797,8 @@ msgstr "Sorun giderme" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "Ultimaker platformuna giriş yapın" +msgid "Sign in to the UltiMaker platform" +msgstr "UltiMaker platformuna giriş yapın" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4812,8 +4812,8 @@ msgstr "Malzeme ayarlarınızı ve eklentilerinizi yedekleyin ve senkronize edin #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "Ultimaker Topluluğunda fikirlerinizi paylaşın ve 48.000'den fazla kullanıcıdan yardım alın" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "UltiMaker Topluluğunda fikirlerinizi paylaşın ve 48.000'den fazla kullanıcıdan yardım alın" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4822,20 +4822,20 @@ msgstr "Atla" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "Ücretsiz Ultimaker Hesabı oluşturun" +msgid "Create a free UltiMaker Account" +msgstr "Ücretsiz UltiMaker Hesabı oluşturun" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "Ultimaker Cura'yı geliştirmemiz yardım edin" +msgid "Help us to improve UltiMaker Cura" +msgstr "UltiMaker Cura'yı geliştirmemiz yardım edin" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" "Ultimaker Cura collects anonymous data to improve print quality and user " "experience, including:" -msgstr "Ultimaker Cura, yazdırma kalitesini ve kullanıcı deneyimini iyileştirmek için anonim veri toplar. Bu veriler aşağıdakileri içerir:" +msgstr "UltiMaker Cura, yazdırma kalitesini ve kullanıcı deneyimini iyileştirmek için anonim veri toplar. Bu veriler aşağıdakileri içerir:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4861,7 +4861,7 @@ msgstr "Yazdırma ayarları" msgctxt "@text" msgid "" "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Ultimaker Cura tarafından toplanan veriler herhangi bir kişisel bilgi içermeyecektir." +msgstr "UltiMaker Cura tarafından toplanan veriler herhangi bir kişisel bilgi içermeyecektir." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4931,8 +4931,8 @@ msgstr "Cihaza bağlanılamadı." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "Ultimaker yazıcınıza bağlanamıyor musunuz?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "UltiMaker yazıcınıza bağlanamıyor musunuz?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4953,15 +4953,15 @@ msgstr "Bağlan" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "Ultimaker Cura'ya hoş geldiniz" +msgid "Welcome to UltiMaker Cura" +msgstr "UltiMaker Cura'ya hoş geldiniz" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" "Please follow these steps to set up Ultimaker Cura. This will only take a " "few moments." -msgstr "Ultimaker Cura'yı kurmak\n için lütfen aşağıdaki adımları izleyin. Bu sadece birkaç saniye sürecektir." +msgstr "UltiMaker Cura'yı kurmak\n için lütfen aşağıdaki adımları izleyin. Bu sadece birkaç saniye sürecektir." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5661,7 +5661,7 @@ msgctxt "@info:credit" msgid "" "Cura is developed by Ultimaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" -msgstr "Cura, topluluk iş birliği ile Ultimaker B.V. tarafından geliştirilmiştir.\nCura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" +msgstr "Cura, topluluk iş birliği ile UltiMaker B.V. tarafından geliştirilmiştir.\nCura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:138 msgctxt "@label Description for application component" @@ -5846,8 +5846,8 @@ msgstr "Yazıcılarım" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "Ultimaker Digital Factory'de yazıcıları izleyin." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "UltiMaker Digital Factory'de yazıcıları izleyin." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5866,23 +5866,23 @@ msgstr "Baskı işlerini takip edin ve baskı geçmişinizden yeniden baskı iş #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "Ultimaker Cura'yı eklentilerle ve malzeme profilleriyle genişletin." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "UltiMaker Cura'yı eklentilerle ve malzeme profilleriyle genişletin." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "Ultimaker e-öğrenme ile 3D baskı uzmanı olun." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "UltiMaker e-öğrenme ile 3D baskı uzmanı olun." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Ultimaker desteği" +msgid "UltiMaker support" +msgstr "UltiMaker desteği" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "Ultimaker Cura ile işe nasıl başlayacağınızı öğrenin." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "UltiMaker Cura ile işe nasıl başlayacağınızı öğrenin." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5891,8 +5891,8 @@ msgstr "Soru gönder" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "Ultimaker Topluluğundan yardım alın." +msgid "Consult the UltiMaker Community." +msgstr "UltiMaker Topluluğundan yardım alın." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5906,8 +5906,8 @@ msgstr "Geliştiricileri sorunlarla ilgili bilgilendirin." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "Ultimaker web sitesini ziyaret edin." +msgid "Visit the UltiMaker website." +msgstr "UltiMaker web sitesini ziyaret edin." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -6219,13 +6219,13 @@ msgid "" "- Add material profiles and plug-ins from the Marketplace\n" "- Back-up and sync your material profiles and plug-ins\n" "- Share ideas and get help from 48,000+ users in the Ultimaker community" -msgstr "- Marketplace'den malzeme profilleri ve eklentiler ekleyin\n- Malzeme profillerinizi ve eklentilerinizi yedekleyin ve senkronize edin\n- Ultimaker topluluğunda" +msgstr "- Marketplace'den malzeme profilleri ve eklentiler ekleyin\n- Malzeme profillerinizi ve eklentilerinizi yedekleyin ve senkronize edin\n- UltiMaker topluluğunda" " fikirlerinizi paylaşın ve 48.000'den fazla kullanıcıdan yardım alın" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "Ücretsiz Ultimaker hesabı oluşturun" +msgid "Create a free UltiMaker account" +msgstr "Ücretsiz UltiMaker hesabı oluşturun" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -6239,8 +6239,8 @@ msgstr "Son güncelleme: %1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Ultimaker hesabı" +msgid "UltiMaker Account" +msgstr "UltiMaker hesabı" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6284,7 +6284,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Yazıcı hesabınızla bağlanmamış. Bağlantı kurmak için lütfen Ultimaker Digital Factory bölümünü ziyaret edin." +msgstr "Yazıcı hesabınızla bağlanmamış. Bağlantı kurmak için lütfen UltiMaker Digital Factory bölümünü ziyaret edin." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6464,13 +6464,13 @@ msgstr "Son İşleme" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "Ultimaker ağındaki yazıcılar için ağ bağlantılarını yönetir." +msgid "Manages network connections to UltiMaker networked printers." +msgstr "UltiMaker ağındaki yazıcılar için ağ bağlantılarını yönetir." #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ultimaker Ağ Bağlantısı" +msgid "UltiMaker Network Connection" +msgstr "UltiMaker Ağ Bağlantısı" #: /3MFWriter/plugin.json msgctxt "description" @@ -6504,8 +6504,8 @@ msgstr "Dilim bilgisi" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "Ultimaker Biçim Paketleri yazmak için destek sağlar." +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "UltiMaker Biçim Paketleri yazmak için destek sağlar." #: /UFPWriter/plugin.json msgctxt "name" @@ -6521,8 +6521,8 @@ msgstr "Digital Library'ye bağlanarak Cura'nın Digital Library'deki dosyaları #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6559,12 +6559,12 @@ msgctxt "description" msgid "" "Provides machine actions for Ultimaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." -msgstr "Ultimaker makineleri için makine eylemleri sunar (yatak dengeleme sihirbazı, yükseltme seçme vb.)" +msgstr "UltiMaker makineleri için makine eylemleri sunar (yatak dengeleme sihirbazı, yükseltme seçme vb.)" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ultimaker makine eylemleri" +msgid "UltiMaker machine actions" +msgstr "UltiMaker makine eylemleri" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6581,7 +6581,7 @@ msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " "the Ultimaker website." -msgstr "Uygulamanın uzantılarını yönetir ve Ultimaker web sitesinden uzantıların incelenmesini sağlar." +msgstr "Uygulamanın uzantılarını yönetir ve UltiMaker web sitesinden uzantıların incelenmesini sağlar." #: /Marketplace/plugin.json msgctxt "name" @@ -6933,8 +6933,8 @@ msgstr "G-code Yazıcı" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "Ultimaker Biçim Paketlerinin okunması için destek sağlar." +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "UltiMaker Biçim Paketlerinin okunması için destek sağlar." #: /UFPReader/plugin.json msgctxt "name" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index 2e18430d52..a7a5c1b211 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -423,8 +423,8 @@ msgstr "无法开始新的登录过程。请检查是否仍在尝试进行另一 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "无法连接 Ultimaker 帐户服务器。" +msgid "Unable to reach the UltiMaker account server." +msgstr "无法连接 UltiMaker 帐户服务器。" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -700,8 +700,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "向 Ultimaker 发送错误报告" +msgid "Send crash report to UltiMaker" +msgstr "向 UltiMaker 发送错误报告" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -901,7 +901,7 @@ msgstr "网络错误" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "从您的 Ultimaker 帐户中检测到新的打印机" @@ -1020,8 +1020,8 @@ msgstr[0] "这些打印机未链接到 Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1047,8 +1047,8 @@ msgstr "删除打印机" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" -msgid "You are attempting to connect to a printer that is not running Ultimaker Connect. Please update the printer to the latest firmware." -msgstr "您正在尝试连接未运行 Ultimaker Connect 的打印机。请将打印机更新至最新固件。" +msgid "You are attempting to connect to a printer that is not running UltiMaker Connect. Please update the printer to the latest firmware." +msgstr "您正在尝试连接未运行 UltiMaker Connect 的打印机。请将打印机更新至最新固件。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1165,8 +1165,8 @@ msgstr "监控打印" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "在 Ultimaker Digital Factory 中跟踪打印" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "在 UltiMaker Digital Factory 中跟踪打印" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1274,8 +1274,8 @@ msgstr "无法写入到 UFP 文件:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimaker 格式包" +msgid "UltiMaker Format Package" +msgstr "UltiMaker 格式包" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1396,8 +1396,8 @@ msgstr "是否要与您的帐户同步材料和软件包?" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "检测到您的 Ultimaker 帐户有更改" +msgid "Changes detected from your UltiMaker account" +msgstr "检测到您的 UltiMaker 帐户有更改" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1557,8 +1557,8 @@ msgstr "报告错误" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "在 Ultimaker Cura 问题跟踪器上报告错误。" +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "在 UltiMaker Cura 问题跟踪器上报告错误。" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1687,8 +1687,8 @@ msgstr "项目文件 {0} 损坏: {1}。" #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723 #, python-brace-format msgctxt "@info:error Don't translate the XML tag !" -msgid "Project file {0} is made using profiles that are unknown to this version of Ultimaker Cura." -msgstr "项目文件 {0} 是用此 Ultimaker Cura 版本未识别的配置文件制作的。" +msgid "Project file {0} is made using profiles that are unknown to this version of UltiMaker Cura." +msgstr "项目文件 {0} 是用此 UltiMaker Cura 版本未识别的配置文件制作的。" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2329,8 +2329,8 @@ msgstr "请及时更新打印机固件以远程管理打印队列。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "无法从 Ultimaker Cura 中查看云打印机的网络摄像头馈送。请单击“管理打印机”以访问 Ultimaker Digital Factory 并查看此网络摄像头。" +msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "无法从 UltiMaker Cura 中查看云打印机的网络摄像头馈送。请单击“管理打印机”以访问 Ultimaker Digital Factory 并查看此网络摄像头。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2396,8 +2396,8 @@ msgstr "第一个可用" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" -msgstr "使用 Ultimaker Digital Factory 从任意位置监控打印机" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgstr "使用 UltiMaker Digital Factory 从任意位置监控打印机" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -2695,8 +2695,8 @@ msgstr "更多关于匿名数据收集的信息" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" -msgid "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" -msgstr "为了改善打印质量和用户体验,Ultimaker Cura 会收集匿名数据。以下是所有数据分享的示例:" +msgid "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" +msgstr "为了改善打印质量和用户体验,UltiMaker Cura 会收集匿名数据。以下是所有数据分享的示例:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2720,8 +2720,8 @@ msgstr "保存 Cura 项目" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "请选择适用于 Ultimaker Original 的升级文件" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "请选择适用于 UltiMaker Original 的升级文件" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2816,8 +2816,8 @@ msgstr "安装插件" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" -msgid "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users." -msgstr "使用由我们卓越的用户社区提供的插件,简化您的工作流程并自定义 Ultimaker Cura 体验。" +msgid "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users." +msgstr "使用由我们卓越的用户社区提供的插件,简化您的工作流程并自定义 UltiMaker Cura 体验。" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 msgctxt "@title" @@ -2875,8 +2875,8 @@ msgstr "安装材料" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" -msgid "Select and install material profiles optimised for your Ultimaker 3D printers." -msgstr "选择并安装针对您的 Ultimaker 3D 打印机经过优化的材料配置文件。" +msgid "Select and install material profiles optimised for your UltiMaker 3D printers." +msgstr "选择并安装针对您的 UltiMaker 3D 打印机经过优化的材料配置文件。" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 msgctxt "@info:tooltip" @@ -2997,18 +2997,18 @@ msgstr "加载更多" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" -msgstr "Ultimaker 验证插件" +msgid "UltiMaker Verified Plug-in" +msgstr "UltiMaker 验证插件" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" -msgstr "Ultimaker 认证材料" +msgid "UltiMaker Certified Material" +msgstr "UltiMaker 认证材料" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" -msgstr "Ultimaker 验证包" +msgid "UltiMaker Verified Package" +msgstr "UltiMaker 验证包" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 msgctxt "@header" @@ -3017,8 +3017,8 @@ msgstr "管理包" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" -msgid "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." -msgstr "在此处管理您的 Ultimaker Cura 插件和材料配置文件。请确保将插件保持为最新,并定期备份设置。" +msgid "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." +msgstr "在此处管理您的 UltiMaker Cura 插件和材料配置文件。请确保将插件保持为最新,并定期备份设置。" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 msgctxt "@title" @@ -4283,8 +4283,8 @@ msgstr "隐私" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "您愿意将关于您的打印数据以匿名形式发送到 Ultimaker 吗?注意:我们不会记录/发送任何模型、IP 地址或其他私人数据。" +msgid "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "您愿意将关于您的打印数据以匿名形式发送到 UltiMaker 吗?注意:我们不会记录/发送任何模型、IP 地址或其他私人数据。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4596,8 +4596,8 @@ msgstr "故障排除" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "登录 Ultimaker 平台" +msgid "Sign in to the UltiMaker platform" +msgstr "登录 UltiMaker 平台" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4611,8 +4611,8 @@ msgstr "备份和同步材料设置和插件" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "在 Ultimaker 社区分享观点并获取 48,000 多名用户的帮助" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "在 UltiMaker 社区分享观点并获取 48,000 多名用户的帮助" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4621,18 +4621,18 @@ msgstr "跳过" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "创建免费的 Ultimaker 帐户" +msgid "Create a free UltiMaker Account" +msgstr "创建免费的 UltiMaker 帐户" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "帮助我们改进 Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "帮助我们改进 UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" -msgid "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:" -msgstr "为了改善打印质量和用户体验,Ultimaker Cura 会收集匿名数据,这些数据包括:" +msgid "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:" +msgstr "为了改善打印质量和用户体验,UltiMaker Cura 会收集匿名数据,这些数据包括:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4656,8 +4656,8 @@ msgstr "打印设置" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" -msgid "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Ultimaker Cura 收集的数据不会包含任何个人信息。" +msgid "Data collected by UltiMaker Cura will not contain any personal information." +msgstr "UltiMaker Cura 收集的数据不会包含任何个人信息。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4727,8 +4727,8 @@ msgstr "无法连接到设备。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "无法连接到 Ultimaker 打印机?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "无法连接到 UltiMaker 打印机?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4747,12 +4747,12 @@ msgstr "连接" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "欢迎使用 Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "欢迎使用 UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" -msgid "Please follow these steps to set up Ultimaker Cura. This will only take a few moments." +msgid "Please follow these steps to set up UltiMaker Cura. This will only take a few moments." msgstr "" "请按照以下步骤设置\n" "Ultimaker Cura。此操作只需要几分钟时间。" @@ -5626,8 +5626,8 @@ msgstr "我的打印机" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "在 Ultimaker Digital Factory 中监控打印机。" +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "在 UltiMaker Digital Factory 中监控打印机。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5646,23 +5646,23 @@ msgstr "监控打印作业并从打印历史记录重新打印。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "用插件和材料配置文件扩展 Ultimaker Cura。" +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "用插件和材料配置文件扩展 UltiMaker Cura。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "通过 Ultimaker 线上课程教学,成为 3D 打印专家。" +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "通过 UltiMaker 线上课程教学,成为 3D 打印专家。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Ultimaker 支持" +msgid "UltiMaker support" +msgstr "UltiMaker 支持" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "了解如何开始使用 Ultimaker Cura。" +msgid "Learn how to get started with UltiMaker Cura." +msgstr "了解如何开始使用 UltiMaker Cura。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5671,8 +5671,8 @@ msgstr "提问" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "咨询 Ultimaker 社区。" +msgid "Consult the UltiMaker Community." +msgstr "咨询 UltiMaker 社区。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5686,8 +5686,8 @@ msgstr "向开发人员报错。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "访问 Ultimaker 网站。" +msgid "Visit the UltiMaker website." +msgstr "访问 UltiMaker 网站。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -5983,8 +5983,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "创建免费的 Ultimaker 帐户" +msgid "Create a free UltiMaker account" +msgstr "创建免费的 UltiMaker 帐户" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -5998,8 +5998,8 @@ msgstr "上次更新时间:%1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Ultimaker 帐户" +msgid "UltiMaker Account" +msgstr "UltiMaker 帐户" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6038,8 +6038,8 @@ msgstr "云打印机离线。请检查打印机是否已开启并连接到 Inter #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." -msgstr "此打印机未链接到您的帐户。请访问 Ultimaker Digital Factory 以建立连接。" +msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." +msgstr "此打印机未链接到您的帐户。请访问 UltiMaker Digital Factory 以建立连接。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6213,13 +6213,13 @@ msgstr "后期处理" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "管理与 Ultimaker 网络打印机的网络连接。" +msgid "Manages network connections to UltiMaker networked printers." +msgstr "管理与 UltiMaker 网络打印机的网络连接。" #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ultimaker 网络连接" +msgid "UltiMaker Network Connection" +msgstr "UltiMaker 网络连接" #: /3MFWriter/plugin.json msgctxt "description" @@ -6253,8 +6253,8 @@ msgstr "切片信息" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "支持写入 Ultimaker 格式包。" +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "支持写入 UltiMaker 格式包。" #: /UFPWriter/plugin.json msgctxt "name" @@ -6268,8 +6268,8 @@ msgstr "连接到 Digital Library,以允许 Cura 从 Digital Library 打开文 #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6303,13 +6303,13 @@ msgstr "Trimesh 阅读器" #: /UltimakerMachineActions/plugin.json msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." +msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc.)." msgstr "为最后的机器提供机器操作(例如,热床调平向导,选择升级等)。" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ultimaker 打印机操作" +msgid "UltiMaker machine actions" +msgstr "UltiMaker 打印机操作" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6323,8 +6323,8 @@ msgstr "压缩 G-code 读取器" #: /Marketplace/plugin.json msgctxt "description" -msgid "Manages extensions to the application and allows browsing extensions from the Ultimaker website." -msgstr "管理对应用程序的扩展并允许从 Ultimaker 网站浏览扩展。" +msgid "Manages extensions to the application and allows browsing extensions from the UltiMaker website." +msgstr "管理对应用程序的扩展并允许从 UltiMaker 网站浏览扩展。" #: /Marketplace/plugin.json msgctxt "name" @@ -6673,8 +6673,8 @@ msgstr "G-code 写入器" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "支持读取 Ultimaker 格式包。" +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "支持读取 UltiMaker 格式包。" #: /UFPReader/plugin.json msgctxt "name" @@ -6988,8 +6988,8 @@ msgstr "准备阶段" #~ msgstr "电子邮件" #~ msgctxt "@description" -#~ msgid "Please sign in to get verified plugins and materials for Ultimaker Cura Enterprise" -#~ msgstr "请登录以获取经验证适用于 Ultimaker Cura Enterprise 的插件和材料" +#~ msgid "Please sign in to get verified plugins and materials for UltiMaker Cura Enterprise" +#~ msgstr "请登录以获取经验证适用于 UltiMaker Cura Enterprise 的插件和材料" #~ msgctxt "@label" #~ msgid "Version" @@ -7146,16 +7146,16 @@ msgstr "准备阶段" #~ msgstr "提供仿真视图。" #~ msgctxt "@info:status" -#~ msgid "Send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "使用您的 Ultimaker account 帐户从任何地方发送和监控打印作业。" +#~ msgid "Send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "使用您的 UltiMaker account 帐户从任何地方发送和监控打印作业。" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Digital Factory" -#~ msgstr "连接到 Ultimaker Digital Factory" +#~ msgid "Connect to UltiMaker Digital Factory" +#~ msgstr "连接到 UltiMaker Digital Factory" #~ msgctxt "@info" -#~ msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura." -#~ msgstr "无法从 Ultimaker Cura 中查看云打印机的网络摄像头馈送。" +#~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." +#~ msgstr "无法从 UltiMaker Cura 中查看云打印机的网络摄像头馈送。" #~ msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" #~ msgid "New features or bug-fixes may be available for your {machine_name}! If not already at the latest version, it is recommended to update the firmware on your printer to version {latest_version}." @@ -7219,8 +7219,8 @@ msgstr "准备阶段" #~ msgstr "完成" #~ msgctxt "@label" -#~ msgid "Ultimaker Account" -#~ msgstr "Ultimaker 帐户" +#~ msgid "UltiMaker Account" +#~ msgstr "UltiMaker 帐户" #~ msgctxt "@text" #~ msgid "Your key to connected 3D printing" @@ -7235,8 +7235,8 @@ msgstr "准备阶段" #~ msgstr "- 通过同步设置并将其加载到任何位置保持灵活性" #~ msgctxt "@text" -#~ msgid "- Increase efficiency with a remote workflow on Ultimaker printers" -#~ msgstr "- 使用 Ultimaker 打印机上的远程工作流提高效率" +#~ msgid "- Increase efficiency with a remote workflow on UltiMaker printers" +#~ msgstr "- 使用 UltiMaker 打印机上的远程工作流提高效率" #~ msgctxt "@text" #~ msgid "" @@ -7247,8 +7247,8 @@ msgstr "准备阶段" #~ "Ultimaker Cura。此操作只需要几分钟时间。" #~ msgctxt "@label" -#~ msgid "What's new in Ultimaker Cura" -#~ msgstr "Ultimaker Cura 新增功能" +#~ msgid "What's new in UltiMaker Cura" +#~ msgstr "UltiMaker Cura 新增功能" #~ msgctxt "@label ({} is object name)" #~ msgid "Are you sure you wish to remove {}? This cannot be undone!" @@ -7279,12 +7279,12 @@ msgstr "准备阶段" #~ msgstr "从 Digital Factory 添加的打印机:
      {}
    " #~ msgctxt "info:status" -#~ msgid "
      {}
    To establish a connection, please visit the Ultimaker Digital Factory." -#~ msgstr "
      {}
    要建立连接,请访问 Ultimaker Digital Factory。" +#~ msgid "
      {}
    To establish a connection, please visit the UltiMaker Digital Factory." +#~ msgstr "
      {}
    要建立连接,请访问 Ultimaker Digital Factory。" #~ msgctxt "@label ({} is printer name)" -#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit Ultimaker Digital Factory.

    Are you sure you want to remove {} temporarily?" -#~ msgstr "{} 将被删除,直至下次帐户同步为止。
    要永久删除 {},请访问 Ultimaker Digital Factory

    是否确实要暂时删除 {}?" +#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit UltiMaker Digital Factory.

    Are you sure you want to remove {} temporarily?" +#~ msgstr "{} 将被删除,直至下次帐户同步为止。
    要永久删除 {},请访问 Ultimaker Digital Factory

    是否确实要暂时删除 {}?" #~ msgctxt "@label" #~ msgid "" @@ -7319,8 +7319,8 @@ msgstr "准备阶段" #~ msgstr "网络摄像头不可用,因为您正在监控云打印机。" #~ msgctxt "@button" -#~ msgid "Ultimaker Digital Factory" -#~ msgstr "Ultimaker Digital Factory" +#~ msgid "UltiMaker Digital Factory" +#~ msgstr "UltiMaker Digital Factory" #~ msgctxt "@text:window, %1 is a profile name" #~ msgid "" @@ -7358,8 +7358,8 @@ msgstr "准备阶段" #~ msgstr "通过云连接" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "连接到 Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "连接到 UltiMaker Cloud" #~ msgctxt "@label" #~ msgid "You need to login first before you can rate" @@ -7386,16 +7386,16 @@ msgstr "准备阶段" #~ msgstr "作者" #~ msgctxt "@description" -#~ msgid "Get plugins and materials verified by Ultimaker" -#~ msgstr "获取经过 Ultimaker 验证的插件和材料" +#~ msgid "Get plugins and materials verified by UltiMaker" +#~ msgstr "获取经过 UltiMaker 验证的插件和材料" #~ msgctxt "@label The argument is a username." #~ msgid "Hi %1" #~ msgstr "%1,您好" #~ msgctxt "@button" -#~ msgid "Ultimaker account" -#~ msgstr "Ultimaker 帐户" +#~ msgid "UltiMaker account" +#~ msgstr "UltiMaker 帐户" #~ msgctxt "@button" #~ msgid "Sign out" @@ -7490,20 +7490,20 @@ msgstr "准备阶段" #~ msgstr "语言:" #~ msgctxt "@label" -#~ msgid "Ultimaker Cloud" -#~ msgstr "Ultimaker Cloud" +#~ msgid "UltiMaker Cloud" +#~ msgstr "UltiMaker Cloud" #~ msgctxt "@text" #~ msgid "The next generation 3D printing workflow" #~ msgstr "下一代 3D 打印工作流程" #~ msgctxt "@text" -#~ msgid "- Send print jobs to Ultimaker printers outside your local network" -#~ msgstr "- 将打印作业发送到局域网外的 Ultimaker 打印机" +#~ msgid "- Send print jobs to UltiMaker printers outside your local network" +#~ msgstr "- 将打印作业发送到局域网外的 UltiMaker 打印机" #~ msgctxt "@text" -#~ msgid "- Store your Ultimaker Cura settings in the cloud for use anywhere" -#~ msgstr "- 将 Ultimaker Cura 设置存储到云以便在任何地方使用" +#~ msgid "- Store your UltiMaker Cura settings in the cloud for use anywhere" +#~ msgstr "- 将 UltiMaker Cura 设置存储到云以便在任何地方使用" #~ msgctxt "@text" #~ msgid "- Get exclusive access to print profiles from leading brands" @@ -7590,8 +7590,8 @@ msgstr "准备阶段" #~ msgstr "显示所有设置" #~ msgctxt "@title:window" -#~ msgid "Ultimaker Cura" -#~ msgstr "Ultimaker Cura" +#~ msgid "UltiMaker Cura" +#~ msgstr "UltiMaker Cura" #~ msgctxt "@title:window" #~ msgid "About Cura" @@ -7674,8 +7674,8 @@ msgstr "准备阶段" #~ msgstr "检查表" #~ msgctxt "@label" -#~ msgid "Please select any upgrades made to this Ultimaker 2." -#~ msgstr "请选择适用于 Ultimaker 2 的升级文件。" +#~ msgid "Please select any upgrades made to this UltiMaker 2." +#~ msgstr "请选择适用于 UltiMaker 2 的升级文件。" #~ msgctxt "@label" #~ msgid "Olsson Block" @@ -7798,8 +7798,8 @@ msgstr "准备阶段" #~ msgstr "无法启动新的打印作业。" #~ msgctxt "@label" -#~ msgid "There is an issue with the configuration of your Ultimaker, which makes it impossible to start the print. Please resolve this issues before continuing." -#~ msgstr "Ultimaker 配置存在问题,导致无法开始打印。请解决此问题,然后再继续。" +#~ msgid "There is an issue with the configuration of your UltiMaker, which makes it impossible to start the print. Please resolve this issues before continuing." +#~ msgstr "UltiMaker 配置存在问题,导致无法开始打印。请解决此问题,然后再继续。" #~ msgctxt "@window:title" #~ msgid "Mismatched configuration" @@ -7890,20 +7890,20 @@ msgstr "准备阶段" #~ msgstr "连接到云时出错。" #~ msgctxt "@info:status" -#~ msgid "Uploading via Ultimaker Cloud" -#~ msgstr "通过 Ultimaker Cloud 上传" +#~ msgid "Uploading via UltiMaker Cloud" +#~ msgstr "通过 UltiMaker Cloud 上传" #~ msgctxt "@info:status Ultimaker Cloud is a brand name and shouldn't be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "连接到 Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "连接到 UltiMaker Cloud" #~ msgctxt "@action" #~ msgid "Don't ask me again for this printer." #~ msgstr "对此打印机不再询问。" #~ msgctxt "@info:status" -#~ msgid "You can now send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "您现在可以使用您的 Ultimaker account 帐户从任何地方发送和监控打印作业。" +#~ msgid "You can now send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "您现在可以使用您的 UltiMaker account 帐户从任何地方发送和监控打印作业。" #~ msgctxt "@info:status" #~ msgid "Connected!" @@ -7949,7 +7949,7 @@ msgstr "准备阶段" #~ msgstr "正交" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers." +#~ msgid "Manages network connections to UltiMaker 3 printers." #~ msgstr "管理与最后的3个打印机的网络连接。" #~ msgctxt "name" @@ -8053,8 +8053,8 @@ msgstr "准备阶段" #~ msgstr "发送数据至远程群集" #~ msgctxt "@info:status" -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "连接到 Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "连接到 UltiMaker Cloud" #~ msgctxt "@info" #~ msgid "Cura collects anonymized usage statistics." @@ -8189,11 +8189,11 @@ msgstr "准备阶段" #~ msgstr "请选择已连接网络的打印机进行监控。" #~ msgctxt "@info" -#~ msgid "Please connect your Ultimaker printer to your local network." -#~ msgstr "请将 Ultimaker 打印机连接到您的局域网。" +#~ msgid "Please connect your UltiMaker printer to your local network." +#~ msgstr "请将 UltiMaker 打印机连接到您的局域网。" #~ msgctxt "@text:window" -#~ msgid "Cura sends anonymous data to Ultimaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." +#~ msgid "Cura sends anonymous data to UltiMaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." #~ msgstr "Cura向最终用户发送匿名数据,以提高打印质量和用户体验。下面是发送的所有数据的一个示例。" #~ msgctxt "@text:window" @@ -8201,8 +8201,8 @@ msgstr "准备阶段" #~ msgstr "我不想发送此数据" #~ msgctxt "@text:window" -#~ msgid "Allow sending this data to Ultimaker and help us improve Cura" -#~ msgstr "允许向 Ultimaker 发送此数据并帮助我们改善 Cura" +#~ msgid "Allow sending this data to UltiMaker and help us improve Cura" +#~ msgstr "允许向 UltiMaker 发送此数据并帮助我们改善 Cura" #~ msgctxt "@label" #~ msgid "No print selected" @@ -8404,7 +8404,7 @@ msgstr "准备阶段" #~ msgstr "我不想发送这些数据" #~ msgctxt "@text:window" -#~ msgid "Allow sending these data to Ultimaker and help us improve Cura" +#~ msgid "Allow sending these data to UltiMaker and help us improve Cura" #~ msgstr "允许将这些数据发送到最后一个,帮助我们改进Cura" #~ msgctxt "@label" @@ -8600,8 +8600,8 @@ msgstr "准备阶段" #~ msgstr "打印平台附着" #~ msgctxt "@label" -#~ msgid "Need help improving your prints?
    Read the Ultimaker Troubleshooting Guides" -#~ msgstr "需要帮助改善您的打印?
    阅读 Ultimaker 故障排除指南" +#~ msgid "Need help improving your prints?
    Read the UltiMaker Troubleshooting Guides" +#~ msgstr "需要帮助改善您的打印?
    阅读 UltiMaker 故障排除指南" #~ msgctxt "@title:window" #~ msgid "Engine Log" @@ -8620,8 +8620,8 @@ msgstr "准备阶段" #~ msgstr "检查兼容性" #~ msgctxt "@tooltip" -#~ msgid "Click to check the material compatibility on Ultimaker.com." -#~ msgstr "点击查看 Ultimaker.com 上的材料兼容情况。" +#~ msgid "Click to check the material compatibility on UltiMaker.com." +#~ msgstr "点击查看 UltiMaker.com 上的材料兼容情况。" #~ msgctxt "description" #~ msgid "Shows changes since latest checked version." @@ -8740,16 +8740,16 @@ msgstr "准备阶段" #~ msgstr "联系方式" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of Ultimaker 3 printers." -#~ msgstr "这台打印机未设置为运行一组连接的 Ultimaker 3 打印机。" +#~ msgid "This printer is not set up to host a group of UltiMaker 3 printers." +#~ msgstr "这台打印机未设置为运行一组连接的 UltiMaker 3 打印机。" #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 Ultimaker 3 printers." -#~ msgstr "这台打印机是一组共 %1 台已连接 Ultimaker 3 打印机的主机。" +#~ msgid "This printer is the host for a group of %1 UltiMaker 3 printers." +#~ msgstr "这台打印机是一组共 %1 台已连接 UltiMaker 3 打印机的主机。" #~ msgctxt "@label: arg 1 is group name" -#~ msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "%1 未设置为运行一组连接的 Ultimaker 3 打印机" +#~ msgid "%1 is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "%1 未设置为运行一组连接的 UltiMaker 3 打印机" #~ msgctxt "@label link to connect manager" #~ msgid "Add/Remove printers" @@ -9015,12 +9015,12 @@ msgstr "准备阶段" #~ msgstr "插件浏览器" #~ msgctxt "@label" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@title:window" #~ msgid "SolidWorks: Export wizard" @@ -9171,8 +9171,8 @@ msgstr "准备阶段" #~ msgstr "提供更改打印机设置(如成形空间体积、喷嘴口径等)的方法" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "管理与 Ultimaker 3 打印机的网络连接" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "管理与 UltiMaker 3 打印机的网络连接" #~ msgctxt "description" #~ msgid "Gives you the possibility to open certain files using SolidWorks itself. Conversion is done by this plugin and additional optimizations." @@ -9211,8 +9211,8 @@ msgstr "准备阶段" #~ msgstr "询问用户一次是否同意我们的许可" #~ msgctxt "description" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "为 Ultimaker 打印机提供操作选项(如平台调平向导、选择升级等)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "为 UltiMaker 打印机提供操作选项(如平台调平向导、选择升级等)" #~ msgctxt "@item:inlistbox" #~ msgid "GCode File" @@ -9318,12 +9318,12 @@ msgstr "准备阶段" #~ msgid "Resuming print..." #~ msgstr "恢复打印..." -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "这台打印机未设置为运行一组连接的 Ultimaker 3 打印机。" +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "这台打印机未设置为运行一组连接的 UltiMaker 3 打印机。" #~ msgctxt "Count is number of printers." -#~ msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." -#~ msgstr "这台打印机是一组共 {count} 台已连接 Ultimaker 3 打印机的主机。" +#~ msgid "This printer is the host for a group of {count} connected UltiMaker 3 printers." +#~ msgstr "这台打印机是一组共 {count} 台已连接 UltiMaker 3 打印机的主机。" #~ msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." #~ msgstr "{printer_name} 已完成打印 '{job_name}'。 请收起打印品并确认清空打印平台。" @@ -9332,8 +9332,8 @@ msgstr "准备阶段" #~ msgstr "{printer_name} 已保留用于打印 '{job_name}'。 请更改打印机配置以匹配此项作业,以便开始打印。" #~ msgctxt "@info:status" -#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "无法发送新打印作业:此 3D 打印机(尚)未设置为运行一组连接的 Ultimaker 3 打印机。" +#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "无法发送新打印作业:此 3D 打印机(尚)未设置为运行一组连接的 UltiMaker 3 打印机。" #~ msgctxt "@info:status" #~ msgid "Unable to send print job to group {cluster_name}." @@ -9458,12 +9458,12 @@ msgstr "准备阶段" #~ msgstr "未知错误代码: %1" #~ msgctxt "@label Printer name" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label Printer name" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@label Printer status" #~ msgid "Unknown" @@ -9737,12 +9737,12 @@ msgstr "准备阶段" #~ msgstr "确定" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "这台打印机未设置为运行一组连接的 Ultimaker 3 打印机" +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "这台打印机未设置为运行一组连接的 UltiMaker 3 打印机" #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" -#~ msgstr "这台打印机是一组 %1 台已连接 Ultimaker 3 打印机的主机" +#~ msgid "This printer is the host for a group of %1 connected UltiMaker 3 printers" +#~ msgstr "这台打印机是一组 %1 台已连接 UltiMaker 3 打印机的主机" #~ msgctxt "@label" #~ msgid "Completed on: " @@ -10058,8 +10058,8 @@ msgstr "准备阶段" #~ msgstr "提供可移动磁盘热插拔和写入文件的支持。" #~ msgctxt "@info:whatsthis" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "管理与 Ultimaker 3 打印机的网络连接" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "管理与 UltiMaker 3 打印机的网络连接" #~ msgctxt "@label" #~ msgid "Different print core (Cura: {0}, Printer: {1}) selected for extruder {2}" @@ -10222,12 +10222,12 @@ msgstr "准备阶段" #~ msgstr "提供对写入 3MF 文件的支持。" #~ msgctxt "@label" -#~ msgid "Ultimaker machine actions" -#~ msgstr "Ultimaker 打印机操作" +#~ msgid "UltiMaker machine actions" +#~ msgstr "UltiMaker 打印机操作" #~ msgctxt "@info:whatsthis" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "为 Ultimaker 打印机提供操作选项 (如平台调平向导、选择升级等)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "为 UltiMaker 打印机提供操作选项 (如平台调平向导、选择升级等)" #~ msgctxt "@label" #~ msgid "Cura Profile Reader" @@ -10266,8 +10266,8 @@ msgstr "准备阶段" #~ msgstr "如果您的打印机未列出,请阅读网络打印故障排除指南" #~ msgctxt "@item:inlistbox" -#~ msgid "Ultimaker" -#~ msgstr "Ultimaker" +#~ msgid "UltiMaker" +#~ msgstr "UltiMaker" #~ msgctxt "@label" #~ msgid "Support library for scientific computing " diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po index a7c4dd7bd9..46753f77e6 100644 --- a/resources/i18n/zh_TW/cura.po +++ b/resources/i18n/zh_TW/cura.po @@ -424,8 +424,8 @@ msgstr "無法開始新的登入程序。檢查是否有其他登入仍在進行 #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." -msgstr "無法連上 Ultimaker 帳號伺服器。" +msgid "Unable to reach the UltiMaker account server." +msgstr "無法連上 UltiMaker 帳號伺服器。" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 msgctxt "@info:title" @@ -701,8 +701,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" -msgstr "傳送錯誤報告給 Ultimaker" +msgid "Send crash report to UltiMaker" +msgstr "傳送錯誤報告給 UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" @@ -902,7 +902,7 @@ msgstr "網路錯誤" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "從你的 Ultimaker 帳號偵測到新的印表機" @@ -1021,8 +1021,8 @@ msgstr[0] "印表機未連到 Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" -msgstr "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" +msgstr "UltiMaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1048,8 +1048,8 @@ msgstr "移除印表機" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" -msgid "You are attempting to connect to a printer that is not running Ultimaker Connect. Please update the printer to the latest firmware." -msgstr "你正在嘗試連接到一台未安裝 Ultimaker Connect 的印表機。請將印表機更新至最新版本的韌體。" +msgid "You are attempting to connect to a printer that is not running UltiMaker Connect. Please update the printer to the latest firmware." +msgstr "你正在嘗試連接到一台未安裝 UltiMaker Connect 的印表機。請將印表機更新至最新版本的韌體。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:21 msgctxt "@info:title" @@ -1166,8 +1166,8 @@ msgstr "監控列印" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" -msgstr "在Ultimaker Digital Factory中追蹤您的列印" +msgid "Track the print in UltiMaker Digital Factory" +msgstr "在UltiMaker Digital Factory中追蹤您的列印" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -1275,8 +1275,8 @@ msgstr "無法寫入 UFP 檔案:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" -msgstr "Ultimaker 格式的封包" +msgid "UltiMaker Format Package" +msgstr "UltiMaker 格式的封包" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 msgctxt "@text Placeholder for the username if it has been deleted" @@ -1397,8 +1397,8 @@ msgstr "你要使用你的帳號同步線材資料和軟體套件嗎?" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" -msgstr "從你的 Ultimaker 帳號偵測到資料更動" +msgid "Changes detected from your UltiMaker account" +msgstr "從你的 UltiMaker 帳號偵測到資料更動" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 msgctxt "@action:button" @@ -1558,8 +1558,8 @@ msgstr "回報問題" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." -msgstr "於Ultimaker Cura問題追蹤器中回報問題." +msgid "Report a bug on UltiMaker Cura's issue tracker." +msgstr "於UltiMaker Cura問題追蹤器中回報問題." #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 msgctxt "@info:status" @@ -1688,8 +1688,8 @@ msgstr "專案檔案{0} 已毀損 : {1}. #: /Users/c.lamboo/ultimaker/Cura/plugins/3MFReader/ThreeMFWorkspaceReader.py:723 #, python-brace-format msgctxt "@info:error Don't translate the XML tag !" -msgid "Project file {0} is made using profiles that are unknown to this version of Ultimaker Cura." -msgstr "專案檔案 {0} 使用了此版本 Ultimaker Cura 未知的參數製作。" +msgid "Project file {0} is made using profiles that are unknown to this version of UltiMaker Cura." +msgstr "專案檔案 {0} 使用了此版本 UltiMaker Cura 未知的參數製作。" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 msgctxt "@label" @@ -2331,8 +2331,8 @@ msgstr "請更新你印表機的韌體以便遠端管理工作隊列。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "網路攝影機無法從Ultimaker Cura中瀏覽,請點擊\"管理列印機\"並從Ultimaker Digital Factory中瀏覽網路攝影機." +msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "網路攝影機無法從UltiMaker Cura中瀏覽,請點擊\"管理列印機\"並從Ultimaker Digital Factory中瀏覽網路攝影機." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2398,7 +2398,7 @@ msgstr "可用的第一個" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -2697,8 +2697,8 @@ msgstr "更多關於匿名資料收集的資訊" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" -msgid "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" -msgstr "Ultimaker Cura 搜集匿名資料以提高列印品質和使用者體驗。以下是共享資料的範例:" +msgid "UltiMaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is shared:" +msgstr "UltiMaker Cura 搜集匿名資料以提高列印品質和使用者體驗。以下是共享資料的範例:" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2722,8 +2722,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" -msgstr "請選擇適用於 Ultimaker Original 的更新檔案" +msgid "Please select any upgrades made to this UltiMaker Original" +msgstr "請選擇適用於 UltiMaker Original 的更新檔案" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 msgctxt "@label" @@ -2818,7 +2818,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" -msgid "Streamline your workflow and customize your Ultimaker Cura experience with plugins contributed by our amazing community of users." +msgid "Streamline your workflow and customize your UltiMaker Cura experience with plugins contributed by our amazing community of users." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/CompatibilityDialog.qml:15 @@ -2877,7 +2877,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" -msgid "Select and install material profiles optimised for your Ultimaker 3D printers." +msgid "Select and install material profiles optimised for your UltiMaker 3D printers." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagePackagesButton.qml:32 @@ -2999,17 +2999,17 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" +msgid "UltiMaker Verified Plug-in" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" +msgid "UltiMaker Certified Material" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" +msgid "UltiMaker Verified Package" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 @@ -3019,7 +3019,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" -msgid "Manage your Ultimaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." +msgid "Manage your UltiMaker Cura plugins and material profiles here. Make sure to keep your plugins up to date and backup your setup regularly." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/InstallMissingPackagesDialog.qml:15 @@ -4285,8 +4285,8 @@ msgstr "隱私權" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" -msgid "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." -msgstr "你願意將關於你的列印資料以匿名形式發送到 Ultimaker 嗎?注意:我們不會記錄或發送任何模型、IP 位址或其他私人資料。" +msgid "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored." +msgstr "你願意將關於你的列印資料以匿名形式發送到 UltiMaker 嗎?注意:我們不會記錄或發送任何模型、IP 位址或其他私人資料。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:867 msgctxt "@option:check" @@ -4598,8 +4598,8 @@ msgstr "故障排除" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" -msgstr "登入Ultimaker 論壇" +msgid "Sign in to the UltiMaker platform" +msgstr "登入UltiMaker 論壇" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 msgctxt "@text" @@ -4613,8 +4613,8 @@ msgstr "備份及同步您的線材設定與插件" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" -msgstr "分享創意並可從Ultimaker社群中超過48000的使用者得到幫助" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" +msgstr "分享創意並可從UltiMaker社群中超過48000的使用者得到幫助" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 msgctxt "@button" @@ -4623,18 +4623,18 @@ msgstr "略過" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" -msgstr "創建免費的Ultimaker帳戶" +msgid "Create a free UltiMaker Account" +msgstr "創建免費的UltiMaker帳戶" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" -msgstr "協助我們改進 Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" +msgstr "協助我們改進 UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" -msgid "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:" -msgstr "Ultimaker Cura 搜集匿名資料以提高列印品質和使用者體驗,包含:" +msgid "UltiMaker Cura collects anonymous data to improve print quality and user experience, including:" +msgstr "UltiMaker Cura 搜集匿名資料以提高列印品質和使用者體驗,包含:" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:68 msgctxt "@text" @@ -4658,8 +4658,8 @@ msgstr "列印設定" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" -msgid "Data collected by Ultimaker Cura will not contain any personal information." -msgstr "Ultimaker Cura 收集的資料不包含任何個人資訊。" +msgid "Data collected by UltiMaker Cura will not contain any personal information." +msgstr "UltiMaker Cura 收集的資料不包含任何個人資訊。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 msgctxt "@text" @@ -4729,8 +4729,8 @@ msgstr "無法連接到裝置。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" -msgstr "無法連接到 Ultimaker 印表機?" +msgid "Can't connect to your UltiMaker printer?" +msgstr "無法連接到 UltiMaker 印表機?" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 msgctxt "@label" @@ -4749,13 +4749,13 @@ msgstr "連接" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" -msgstr "歡迎來到 Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" +msgstr "歡迎來到 UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" -msgid "Please follow these steps to set up Ultimaker Cura. This will only take a few moments." -msgstr "請依照步驟安裝Ultimaker Cura. 這會需要幾分鐘的時間." +msgid "Please follow these steps to set up UltiMaker Cura. This will only take a few moments." +msgstr "請依照步驟安裝UltiMaker Cura. 這會需要幾分鐘的時間." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:82 msgctxt "@button" @@ -5623,8 +5623,8 @@ msgstr "我的列印機" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." -msgstr "從Ultimaker Digital Factory中監控我的列印機." +msgid "Monitor printers in UltiMaker Digital Factory." +msgstr "從UltiMaker Digital Factory中監控我的列印機." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5643,23 +5643,23 @@ msgstr "監控列印工作並於從您的歷史紀錄中再次列印." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." -msgstr "使用插件及線材參數擴充Ultimaker Cura." +msgid "Extend UltiMaker Cura with plugins and material profiles." +msgstr "使用插件及線材參數擴充UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." -msgstr "使用Ultimaker e-learning成為一位3D列印專家." +msgid "Become a 3D printing expert with UltiMaker e-learning." +msgstr "使用UltiMaker e-learning成為一位3D列印專家." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" -msgstr "Ultimaker 支援" +msgid "UltiMaker support" +msgstr "UltiMaker 支援" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." -msgstr "學習如何開始使用Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." +msgstr "學習如何開始使用UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 msgctxt "@label:button" @@ -5668,8 +5668,8 @@ msgstr "提出問題" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." -msgstr "諮詢Ultimaker社群." +msgid "Consult the UltiMaker Community." +msgstr "諮詢UltiMaker社群." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 msgctxt "@label:button" @@ -5683,8 +5683,8 @@ msgstr "讓開發者了解您遇到的問題." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." -msgstr "參觀Ultimaker網站." +msgid "Visit the UltiMaker website." +msgstr "參觀UltiMaker網站." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 msgctxt "@label" @@ -5980,8 +5980,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" -msgstr "創建免費的Ultimaker帳戶" +msgid "Create a free UltiMaker account" +msgstr "創建免費的UltiMaker帳戶" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 msgctxt "@action:button" @@ -5995,8 +5995,8 @@ msgstr "最後一次更新:%1" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" -msgstr "Ultimaker 帳號" +msgid "UltiMaker Account" +msgstr "UltiMaker 帳號" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 msgctxt "@button" @@ -6035,8 +6035,8 @@ msgstr "雲端印表機為離線狀態。請檢查印表機是否已開機並連 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." -msgstr "此印表機未連接到你的帳號。請前往 Ultimaker Digital Factory 建立連接。" +msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." +msgstr "此印表機未連接到你的帳號。請前往 UltiMaker Digital Factory 建立連接。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6210,13 +6210,13 @@ msgstr "後處理" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." -msgstr "管理與 Ultimaker 網絡印表機的網絡連線。" +msgid "Manages network connections to UltiMaker networked printers." +msgstr "管理與 UltiMaker 網絡印表機的網絡連線。" #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" -msgstr "Ultimaker 網絡連線" +msgid "UltiMaker Network Connection" +msgstr "UltiMaker 網絡連線" #: /3MFWriter/plugin.json msgctxt "description" @@ -6250,8 +6250,8 @@ msgstr "切片資訊" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." -msgstr "提供寫入 Ultimaker 格式封包的支援。" +msgid "Provides support for writing UltiMaker Format Packages." +msgstr "提供寫入 UltiMaker 格式封包的支援。" #: /UFPWriter/plugin.json msgctxt "name" @@ -6265,8 +6265,8 @@ msgstr "連結至\"數位博物館\",允許Cura從\"數位博物館\"打開或 #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" -msgstr "Ultimaker 數位博物館" +msgid "UltiMaker Digital Library" +msgstr "UltiMaker 數位博物館" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -6300,13 +6300,13 @@ msgstr "Trimesh 讀取器" #: /UltimakerMachineActions/plugin.json msgctxt "description" -msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc.)." -msgstr "提供 Ultimaker 機器的操作(例如平台調平精靈,選擇升級等)。" +msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc.)." +msgstr "提供 UltiMaker 機器的操作(例如平台調平精靈,選擇升級等)。" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" -msgstr "Ultimaker 印表機操作" +msgid "UltiMaker machine actions" +msgstr "UltiMaker 印表機操作" #: /GCodeGzReader/plugin.json msgctxt "description" @@ -6320,7 +6320,7 @@ msgstr "壓縮檔案 G-code 讀取器" #: /Marketplace/plugin.json msgctxt "description" -msgid "Manages extensions to the application and allows browsing extensions from the Ultimaker website." +msgid "Manages extensions to the application and allows browsing extensions from the UltiMaker website." msgstr "" #: /Marketplace/plugin.json @@ -6670,8 +6670,8 @@ msgstr "G-code 寫入器" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." -msgstr "提供讀取 Ultimaker 格式封包的支援。" +msgid "Provides support for reading UltiMaker Format Packages." +msgstr "提供讀取 UltiMaker 格式封包的支援。" #: /UFPReader/plugin.json msgctxt "name" @@ -6964,8 +6964,8 @@ msgstr "準備介面" #~ msgstr "電子郵件" #~ msgctxt "@description" -#~ msgid "Please sign in to get verified plugins and materials for Ultimaker Cura Enterprise" -#~ msgstr "請登入以取得 Ultimaker Cura Enterprise 驗証的外掛及線材" +#~ msgid "Please sign in to get verified plugins and materials for UltiMaker Cura Enterprise" +#~ msgstr "請登入以取得 UltiMaker Cura Enterprise 驗証的外掛及線材" #~ msgctxt "@label" #~ msgid "Version" @@ -7122,16 +7122,16 @@ msgstr "準備介面" #~ msgstr "提供模擬檢視。" #~ msgctxt "@info:status" -#~ msgid "Send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "利用你的 Ultimaker 帳號在任何地方傳送和監控列印作業。" +#~ msgid "Send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "利用你的 UltiMaker 帳號在任何地方傳送和監控列印作業。" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Digital Factory" -#~ msgstr "連接到 Ultimaker Digital Factory" +#~ msgid "Connect to UltiMaker Digital Factory" +#~ msgstr "連接到 UltiMaker Digital Factory" #~ msgctxt "@info" -#~ msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura." -#~ msgstr "無法從Ultimaker Cura中查看你的雲端列印機." +#~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." +#~ msgstr "無法從UltiMaker Cura中查看你的雲端列印機." #~ msgctxt "@info Don't translate {machine_name}, since it gets replaced by a printer name!" #~ msgid "New features or bug-fixes may be available for your {machine_name}! If not already at the latest version, it is recommended to update the firmware on your printer to version {latest_version}." @@ -7195,8 +7195,8 @@ msgstr "準備介面" #~ msgstr "完成" #~ msgctxt "@label" -#~ msgid "Ultimaker Account" -#~ msgstr "Ultimaker 帳號" +#~ msgid "UltiMaker Account" +#~ msgstr "UltiMaker 帳號" #~ msgctxt "@text" #~ msgid "Your key to connected 3D printing" @@ -7211,8 +7211,8 @@ msgstr "準備介面" #~ msgstr "- 通過同步設定可在任何地方將其載入以保持靈活性" #~ msgctxt "@text" -#~ msgid "- Increase efficiency with a remote workflow on Ultimaker printers" -#~ msgstr "- 透過 Ultimaker 印表機上的遠端工作流程提高效率" +#~ msgid "- Increase efficiency with a remote workflow on UltiMaker printers" +#~ msgstr "- 透過 UltiMaker 印表機上的遠端工作流程提高效率" #~ msgctxt "@text" #~ msgid "" @@ -7223,8 +7223,8 @@ msgstr "準備介面" #~ "Ultimaker Cura。這只需要一點時間。" #~ msgctxt "@label" -#~ msgid "What's new in Ultimaker Cura" -#~ msgstr "Ultimaker Cura 新功能" +#~ msgid "What's new in UltiMaker Cura" +#~ msgstr "UltiMaker Cura 新功能" #~ msgctxt "@label ({} is object name)" #~ msgid "Are you sure you wish to remove {}? This cannot be undone!" @@ -7255,12 +7255,12 @@ msgstr "準備介面" #~ msgstr "從 Digital Factory 新增印表機:
      {}
    " #~ msgctxt "info:status" -#~ msgid "
      {}
    To establish a connection, please visit the Ultimaker Digital Factory." -#~ msgstr "
      {}
    要建立連線,請前往 Ultimaker Digital Factory。" +#~ msgid "
      {}
    To establish a connection, please visit the UltiMaker Digital Factory." +#~ msgstr "
      {}
    要建立連線,請前往 Ultimaker Digital Factory。" #~ msgctxt "@label ({} is printer name)" -#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit Ultimaker Digital Factory.

    Are you sure you want to remove {} temporarily?" -#~ msgstr "直到下次帳號同步前 {} 將被移除。
    要永久移除 {},請前往 Ultimaker Digital Factory

    你確定要暫時移除 {} 嗎?" +#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit UltiMaker Digital Factory.

    Are you sure you want to remove {} temporarily?" +#~ msgstr "直到下次帳號同步前 {} 將被移除。
    要永久移除 {},請前往 Ultimaker Digital Factory

    你確定要暫時移除 {} 嗎?" #~ msgctxt "@label" #~ msgid "" @@ -7295,8 +7295,8 @@ msgstr "準備介面" #~ msgstr "由於你正在監控一台雲端印表機,因此無法使用網路攝影機。" #~ msgctxt "@button" -#~ msgid "Ultimaker Digital Factory" -#~ msgstr "Ultimaker Digital Factory" +#~ msgid "UltiMaker Digital Factory" +#~ msgstr "UltiMaker Digital Factory" #~ msgctxt "@text:window, %1 is a profile name" #~ msgid "" @@ -7334,8 +7334,8 @@ msgstr "準備介面" #~ msgstr "透過雲端服務連接" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "連接到 Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "連接到 UltiMaker Cloud" #~ msgctxt "@label" #~ msgid "You need to login first before you can rate" @@ -7362,16 +7362,16 @@ msgstr "準備介面" #~ msgstr "作者" #~ msgctxt "@description" -#~ msgid "Get plugins and materials verified by Ultimaker" -#~ msgstr "取得經 Ultimaker 驗証過的外掛和耗材" +#~ msgid "Get plugins and materials verified by UltiMaker" +#~ msgstr "取得經 UltiMaker 驗証過的外掛和耗材" #~ msgctxt "@label The argument is a username." #~ msgid "Hi %1" #~ msgstr "嗨 %1" #~ msgctxt "@button" -#~ msgid "Ultimaker account" -#~ msgstr "Ultimaker 帳號" +#~ msgid "UltiMaker account" +#~ msgstr "UltiMaker 帳號" #~ msgctxt "@button" #~ msgid "Sign out" @@ -7466,20 +7466,20 @@ msgstr "準備介面" #~ msgstr "語言:" #~ msgctxt "@label" -#~ msgid "Ultimaker Cloud" -#~ msgstr "Ultimaker Cloud" +#~ msgid "UltiMaker Cloud" +#~ msgstr "UltiMaker Cloud" #~ msgctxt "@text" #~ msgid "The next generation 3D printing workflow" #~ msgstr "下一世代的 3D 列印流程" #~ msgctxt "@text" -#~ msgid "- Send print jobs to Ultimaker printers outside your local network" -#~ msgstr "- 將列印作業傳送到你區域網路外的 Ultimaker 印表機" +#~ msgid "- Send print jobs to UltiMaker printers outside your local network" +#~ msgstr "- 將列印作業傳送到你區域網路外的 UltiMaker 印表機" #~ msgctxt "@text" -#~ msgid "- Store your Ultimaker Cura settings in the cloud for use anywhere" -#~ msgstr "- 將你的 Ultimaker Cura 設定儲存在雲端以便隨處使用" +#~ msgid "- Store your UltiMaker Cura settings in the cloud for use anywhere" +#~ msgstr "- 將你的 UltiMaker Cura 設定儲存在雲端以便隨處使用" #~ msgctxt "@text" #~ msgid "- Get exclusive access to print profiles from leading brands" @@ -7566,8 +7566,8 @@ msgstr "準備介面" #~ msgstr "顯示所有設定" #~ msgctxt "@title:window" -#~ msgid "Ultimaker Cura" -#~ msgstr "Ultimaker Cura" +#~ msgid "UltiMaker Cura" +#~ msgstr "UltiMaker Cura" #~ msgctxt "@title:window" #~ msgid "About Cura" @@ -7650,8 +7650,8 @@ msgstr "準備介面" #~ msgstr "檢查清單" #~ msgctxt "@label" -#~ msgid "Please select any upgrades made to this Ultimaker 2." -#~ msgstr "請選擇適用於 Ultimaker 2 的更新檔案。" +#~ msgid "Please select any upgrades made to this UltiMaker 2." +#~ msgstr "請選擇適用於 UltiMaker 2 的更新檔案。" #~ msgctxt "@label" #~ msgid "Olsson Block" @@ -7774,8 +7774,8 @@ msgstr "準備介面" #~ msgstr "無法開始新的列印作業。" #~ msgctxt "@label" -#~ msgid "There is an issue with the configuration of your Ultimaker, which makes it impossible to start the print. Please resolve this issues before continuing." -#~ msgstr "Ultimaker 的設定有問題導致無法開始列印。請在繼續之前解決這個問題。" +#~ msgid "There is an issue with the configuration of your UltiMaker, which makes it impossible to start the print. Please resolve this issues before continuing." +#~ msgstr "UltiMaker 的設定有問題導致無法開始列印。請在繼續之前解決這個問題。" #~ msgctxt "@window:title" #~ msgid "Mismatched configuration" @@ -7866,20 +7866,20 @@ msgstr "準備介面" #~ msgstr "連接到雲端服務時發生錯誤。" #~ msgctxt "@info:status" -#~ msgid "Uploading via Ultimaker Cloud" -#~ msgstr "透過 Ultimaker Cloud 上傳" +#~ msgid "Uploading via UltiMaker Cloud" +#~ msgstr "透過 UltiMaker Cloud 上傳" #~ msgctxt "@info:status Ultimaker Cloud is a brand name and shouldn't be translated." -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "連接到 Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "連接到 UltiMaker Cloud" #~ msgctxt "@action" #~ msgid "Don't ask me again for this printer." #~ msgstr "對此印表機不要再次詢問。" #~ msgctxt "@info:status" -#~ msgid "You can now send and monitor print jobs from anywhere using your Ultimaker account." -#~ msgstr "現在你可以利用你的 Ultimaker 帳號在任何地方傳送和監控列印作業。" +#~ msgid "You can now send and monitor print jobs from anywhere using your UltiMaker account." +#~ msgstr "現在你可以利用你的 UltiMaker 帳號在任何地方傳送和監控列印作業。" #~ msgctxt "@info:status" #~ msgid "Connected!" @@ -7925,8 +7925,8 @@ msgstr "準備介面" #~ msgstr "正交" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers." -#~ msgstr "管理與 Ultimaker 3 印表機的網絡連線。" +#~ msgid "Manages network connections to UltiMaker 3 printers." +#~ msgstr "管理與 UltiMaker 3 印表機的網絡連線。" #~ msgctxt "name" #~ msgid "UM3 Network Connection" @@ -8029,8 +8029,8 @@ msgstr "準備介面" #~ msgstr "正在傳送資料到遠端叢集" #~ msgctxt "@info:status" -#~ msgid "Connect to Ultimaker Cloud" -#~ msgstr "連接到 Ultimaker Cloud" +#~ msgid "Connect to UltiMaker Cloud" +#~ msgstr "連接到 UltiMaker Cloud" #~ msgctxt "@info" #~ msgid "Cura collects anonymized usage statistics." @@ -8165,20 +8165,20 @@ msgstr "準備介面" #~ msgstr "請選擇要監控的網絡連線印表機。" #~ msgctxt "@info" -#~ msgid "Please connect your Ultimaker printer to your local network." -#~ msgstr "請將你的 Ultimaker 印表機連接到區域網路。" +#~ msgid "Please connect your UltiMaker printer to your local network." +#~ msgstr "請將你的 UltiMaker 印表機連接到區域網路。" #~ msgctxt "@text:window" -#~ msgid "Cura sends anonymous data to Ultimaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." -#~ msgstr "Cura 傳送匿名資料給 Ultimaker 以提高列印品質和使用者體驗。以下是傳送資料的例子。" +#~ msgid "Cura sends anonymous data to UltiMaker in order to improve the print quality and user experience. Below is an example of all the data that is sent." +#~ msgstr "Cura 傳送匿名資料給 UltiMaker 以提高列印品質和使用者體驗。以下是傳送資料的例子。" #~ msgctxt "@text:window" #~ msgid "I don't want to send this data" #~ msgstr "我不想傳送這些資料" #~ msgctxt "@text:window" -#~ msgid "Allow sending this data to Ultimaker and help us improve Cura" -#~ msgstr "允許將這些資料傳送給 Ultimaker 以協助我們改進 Cura" +#~ msgid "Allow sending this data to UltiMaker and help us improve Cura" +#~ msgstr "允許將這些資料傳送給 UltiMaker 以協助我們改進 Cura" #~ msgctxt "@label" #~ msgid "No print selected" @@ -8380,8 +8380,8 @@ msgstr "準備介面" #~ msgstr "我不想傳送這些資料" #~ msgctxt "@text:window" -#~ msgid "Allow sending these data to Ultimaker and help us improve Cura" -#~ msgstr "允許將這些資料傳送給 Ultimaker 並協助我們改進 Cura" +#~ msgid "Allow sending these data to UltiMaker and help us improve Cura" +#~ msgstr "允許將這些資料傳送給 UltiMaker 並協助我們改進 Cura" #~ msgctxt "@label" #~ msgid "Printer type:" @@ -8576,8 +8576,8 @@ msgstr "準備介面" #~ msgstr "列印平台附著" #~ msgctxt "@label" -#~ msgid "Need help improving your prints?
    Read the Ultimaker Troubleshooting Guides" -#~ msgstr "需要幫助改善你的列印?閱讀 Ultimaker 故障排除指南" +#~ msgid "Need help improving your prints?
    Read the UltiMaker Troubleshooting Guides" +#~ msgstr "需要幫助改善你的列印?閱讀 UltiMaker 故障排除指南" #~ msgctxt "@title:window" #~ msgid "Engine Log" @@ -8596,8 +8596,8 @@ msgstr "準備介面" #~ msgstr "檢查相容性" #~ msgctxt "@tooltip" -#~ msgid "Click to check the material compatibility on Ultimaker.com." -#~ msgstr "點擊查看 Ultimaker.com 上的耗材相容性。" +#~ msgid "Click to check the material compatibility on UltiMaker.com." +#~ msgstr "點擊查看 UltiMaker.com 上的耗材相容性。" #~ msgctxt "description" #~ msgid "Shows changes since latest checked version." @@ -8716,16 +8716,16 @@ msgstr "準備介面" #~ msgstr "聯繫" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of Ultimaker 3 printers." -#~ msgstr "這台印表機未設定成管理一組 Ultimaker 3 印表機的主機。" +#~ msgid "This printer is not set up to host a group of UltiMaker 3 printers." +#~ msgstr "這台印表機未設定成管理一組 UltiMaker 3 印表機的主機。" #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 Ultimaker 3 printers." -#~ msgstr "這台印表機是 %1 台 Ultimaker 3 印表機群組的主機。" +#~ msgid "This printer is the host for a group of %1 UltiMaker 3 printers." +#~ msgstr "這台印表機是 %1 台 UltiMaker 3 印表機群組的主機。" #~ msgctxt "@label: arg 1 is group name" -#~ msgid "%1 is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "%1 未設定成管理一組連線的 Ultimaker 3 印表機的主機" +#~ msgid "%1 is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "%1 未設定成管理一組連線的 UltiMaker 3 印表機的主機" #~ msgctxt "@label link to connect manager" #~ msgid "Add/Remove printers" @@ -8992,12 +8992,12 @@ msgstr "準備介面" #~ msgstr "外掛瀏覽器" #~ msgctxt "@label" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@title:window" #~ msgid "SolidWorks: Export wizard" @@ -9148,8 +9148,8 @@ msgstr "準備介面" #~ msgstr "提供更改印表機設定(如成形空間體積、噴頭口徑等)的方法" #~ msgctxt "description" -#~ msgid "Manages network connections to Ultimaker 3 printers" -#~ msgstr "管理與 Ultimaker 3 印表機的網路連接" +#~ msgid "Manages network connections to UltiMaker 3 printers" +#~ msgstr "管理與 UltiMaker 3 印表機的網路連接" #~ msgctxt "description" #~ msgid "Gives you the possibility to open certain files using SolidWorks itself. Conversion is done by this plugin and additional optimizations." @@ -9188,8 +9188,8 @@ msgstr "準備介面" #~ msgstr "詢問使用者是否同意我們的授權協議" #~ msgctxt "description" -#~ msgid "Provides machine actions for Ultimaker machines (such as bed leveling wizard, selecting upgrades, etc)" -#~ msgstr "提供 Ultimaker 印表機專屬功能(如平台調平精靈、選擇升級等)" +#~ msgid "Provides machine actions for UltiMaker machines (such as bed leveling wizard, selecting upgrades, etc)" +#~ msgstr "提供 UltiMaker 印表機專屬功能(如平台調平精靈、選擇升級等)" #~ msgctxt "@item:inlistbox" #~ msgid "GCode File" @@ -9295,12 +9295,12 @@ msgstr "準備介面" #~ msgid "Resuming print..." #~ msgstr "繼續列印..." -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "這台印表機未設定成管理一組連線的 Ultimaker 3 印表機的主機。" +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "這台印表機未設定成管理一組連線的 UltiMaker 3 印表機的主機。" #~ msgctxt "Count is number of printers." -#~ msgid "This printer is the host for a group of {count} connected Ultimaker 3 printers." -#~ msgstr "這台印表機是 {count} 台連線的 Ultimaker 3 印表機群組的主機。" +#~ msgid "This printer is the host for a group of {count} connected UltiMaker 3 printers." +#~ msgstr "這台印表機是 {count} 台連線的 UltiMaker 3 印表機群組的主機。" #~ msgid "{printer_name} has finished printing '{job_name}'. Please collect the print and confirm clearing the build plate." #~ msgstr "{printer_name} 已完成列印 '{job_name}'。請收起列印件並確認清空列印平台。" @@ -9309,8 +9309,8 @@ msgstr "準備介面" #~ msgstr "{printer_name} 已為了列印 '{job_name}' 保留。請更改印表機設定配合此列印作業,以便開始列印。" #~ msgctxt "@info:status" -#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected Ultimaker 3 printers." -#~ msgstr "無法傳送新的列印作業:這台印表機尚未設定成管理一組連線的 Ultimaker 3 印表機的主機。" +#~ msgid "Unable to send new print job: this 3D printer is not (yet) set up to host a group of connected UltiMaker 3 printers." +#~ msgstr "無法傳送新的列印作業:這台印表機尚未設定成管理一組連線的 UltiMaker 3 印表機的主機。" #~ msgctxt "@info:status" #~ msgid "Unable to send print job to group {cluster_name}." @@ -9435,12 +9435,12 @@ msgstr "準備介面" #~ msgstr "未知錯誤代碼: %1" #~ msgctxt "@label Printer name" -#~ msgid "Ultimaker 3" -#~ msgstr "Ultimaker 3" +#~ msgid "UltiMaker 3" +#~ msgstr "UltiMaker 3" #~ msgctxt "@label Printer name" -#~ msgid "Ultimaker 3 Extended" -#~ msgstr "Ultimaker 3 Extended" +#~ msgid "UltiMaker 3 Extended" +#~ msgstr "UltiMaker 3 Extended" #~ msgctxt "@label Printer status" #~ msgid "Unknown" @@ -9711,12 +9711,12 @@ msgstr "準備介面" #~ msgstr "確定" #~ msgctxt "@label" -#~ msgid "This printer is not set up to host a group of connected Ultimaker 3 printers" -#~ msgstr "這台印表機未設定成管理一組連線的 Ultimaker 3 印表機的主機" +#~ msgid "This printer is not set up to host a group of connected UltiMaker 3 printers" +#~ msgstr "這台印表機未設定成管理一組連線的 UltiMaker 3 印表機的主機" #~ msgctxt "@label" -#~ msgid "This printer is the host for a group of %1 connected Ultimaker 3 printers" -#~ msgstr "這台印表機是 %1 台 Ultimaker 3 印表機群組的主機" +#~ msgid "This printer is the host for a group of %1 connected UltiMaker 3 printers" +#~ msgstr "這台印表機是 %1 台 UltiMaker 3 印表機群組的主機" #~ msgctxt "@label" #~ msgid "Completed on: " From a809e5a91cffe0cebfc3c769d3372cdbb7ec49d4 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 28 Nov 2022 09:13:19 +0100 Subject: [PATCH 154/185] don't shadow format function. --- .../src/printerlinter/formatters/def_json_formatter.py | 2 +- printer-linter/src/printerlinter/formatters/formatter.py | 2 +- .../src/printerlinter/formatters/inst_cfg_formatter.py | 2 +- printer-linter/src/terminal.py | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/printer-linter/src/printerlinter/formatters/def_json_formatter.py b/printer-linter/src/printerlinter/formatters/def_json_formatter.py index c74f077249..0421b8547d 100644 --- a/printer-linter/src/printerlinter/formatters/def_json_formatter.py +++ b/printer-linter/src/printerlinter/formatters/def_json_formatter.py @@ -25,7 +25,7 @@ METADATA_SORT_PRIORITY = { class DefJsonFormatter(FileFormatter): - def format(self, file: Path): + def formatFile(self, file: Path): """ Format .def.json files according to the rules in settings. You can assume that you will be running regex on standard formatted json files, because we load the json first and then diff --git a/printer-linter/src/printerlinter/formatters/formatter.py b/printer-linter/src/printerlinter/formatters/formatter.py index 1425825a82..c668744f42 100644 --- a/printer-linter/src/printerlinter/formatters/formatter.py +++ b/printer-linter/src/printerlinter/formatters/formatter.py @@ -12,5 +12,5 @@ class FileFormatter(ABC): self._settings = settings @abstractmethod - def format(self, file: Path) -> None: + def formatFile(self, file: Path) -> None: pass \ No newline at end of file diff --git a/printer-linter/src/printerlinter/formatters/inst_cfg_formatter.py b/printer-linter/src/printerlinter/formatters/inst_cfg_formatter.py index fc6ccf3c81..c4113bcb48 100644 --- a/printer-linter/src/printerlinter/formatters/inst_cfg_formatter.py +++ b/printer-linter/src/printerlinter/formatters/inst_cfg_formatter.py @@ -7,7 +7,7 @@ from pathlib import Path from .formatter import FileFormatter class InstCfgFormatter(FileFormatter): - def format(self, file: Path): + def formatFile(self, file: Path): """ Format .inst.cfg files according to the rules in settings """ config = configparser.ConfigParser() config.read(file) diff --git a/printer-linter/src/terminal.py b/printer-linter/src/terminal.py index 3591d841a4..6e6d1af4e5 100644 --- a/printer-linter/src/terminal.py +++ b/printer-linter/src/terminal.py @@ -94,11 +94,11 @@ def applyFormattingToFile(file: Path, settings) -> None: if ext == "def.json": formatter = DefJsonFormatter(settings) - formatter.format(file) + formatter.formatFile(file) if ext == "inst.cfg": formatter = InstCfgFormatter(settings) - formatter.format(file) + formatter.formatFile(file) def extractFilePaths(paths: List[Path]) -> List[Path]: From 3eb5f91fd62f29b567b51b9e6cf408477790e392 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 28 Nov 2022 09:14:42 +0100 Subject: [PATCH 155/185] align dictionary values and add comma to end of dict. --- .../printerlinter/formatters/def_json_formatter.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/printer-linter/src/printerlinter/formatters/def_json_formatter.py b/printer-linter/src/printerlinter/formatters/def_json_formatter.py index 0421b8547d..f839594ea5 100644 --- a/printer-linter/src/printerlinter/formatters/def_json_formatter.py +++ b/printer-linter/src/printerlinter/formatters/def_json_formatter.py @@ -10,17 +10,17 @@ from .formatter import FileFormatter # Dictionary items with matching keys will be sorted as if they were the value # Example: "version" will be sorted as if it was "0" TOP_LEVEL_SORT_PRIORITY = { - "version": "0", - "name": "1", - "inherits": "3" + "version": "0", + "name": "1", + "inherits": "3", } METADATA_SORT_PRIORITY = { - "visible": "0", - "author": "1", + "visible": "0", + "author": "1", "manufacturer": "2", "file_formats": "3", - "platform" : "4" + "platform": "4", } From 0bb59acdf826e8f9b22d87be996ee6d19c46407d Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 10:14:51 +0100 Subject: [PATCH 156/185] Update company name to UltiMaker Contributes to CURA-9808 --- cura/ApplicationMetadata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/ApplicationMetadata.py b/cura/ApplicationMetadata.py index 92d5eb6b64..5bb5cbe29e 100644 --- a/cura/ApplicationMetadata.py +++ b/cura/ApplicationMetadata.py @@ -5,7 +5,7 @@ # General constants used in Cura # --------- DEFAULT_CURA_APP_NAME = "cura" -DEFAULT_CURA_DISPLAY_NAME = "Ultimaker Cura" +DEFAULT_CURA_DISPLAY_NAME = "UltiMaker Cura" DEFAULT_CURA_VERSION = "dev" DEFAULT_CURA_BUILD_TYPE = "" DEFAULT_CURA_DEBUG_MODE = False From 61623720ca40cb29d27b5090b9140a8b74b77f8e Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 10:48:38 +0100 Subject: [PATCH 157/185] Update copyright using UltiMaker Contributes to CURA-9808 --- CuraVersion.py.jinja | 2 +- cura/ApplicationMetadata.py | 4 ++-- cura/CrashHandler.py | 4 ++-- plugins/CuraEngineBackend/CuraEngineBackend.py | 2 +- plugins/Marketplace/CloudSync/CloudPackageChecker.py | 4 ++-- plugins/Marketplace/CloudSync/DownloadPresenter.py | 4 ++-- plugins/Marketplace/resources/qml/ManagedPackages.qml | 2 +- plugins/Marketplace/resources/qml/Materials.qml | 2 +- plugins/Marketplace/resources/qml/Plugins.qml | 2 +- plugins/Marketplace/resources/qml/VerifiedIcon.qml | 2 +- plugins/SliceInfoPlugin/MoreInfoWindow.qml | 2 +- plugins/UFPReader/__init__.py | 4 ++-- plugins/UFPWriter/__init__.py | 4 ++-- .../resources/qml/MonitorPrinterCard.qml | 2 +- plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml | 2 +- plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py | 4 ++-- .../src/Cloud/CloudOutputDeviceManager.py | 4 ++-- .../src/Messages/RemovedPrintersMessage.py | 4 ++-- .../UMOUpgradeSelectionMachineAction.qml | 2 +- resources/i18n/cs_CZ/cura.po | 2 +- resources/i18n/de_DE/cura.po | 8 ++++---- resources/i18n/es_ES/cura.po | 8 ++++---- resources/i18n/fi_FI/cura.po | 3 ++- resources/i18n/fr_FR/cura.po | 8 ++++---- resources/i18n/hu_HU/cura.po | 3 ++- resources/i18n/it_IT/cura.po | 8 ++++---- resources/i18n/ja_JP/cura.po | 8 ++++---- resources/i18n/ko_KR/cura.po | 8 ++++---- resources/i18n/nl_NL/cura.po | 8 ++++---- resources/i18n/pl_PL/cura.po | 3 ++- resources/i18n/pt_BR/cura.po | 3 ++- resources/i18n/pt_PT/cura.po | 8 ++++---- resources/i18n/ru_RU/cura.po | 8 ++++---- resources/i18n/tr_TR/cura.po | 8 ++++---- resources/i18n/zh_CN/cura.po | 3 ++- resources/i18n/zh_TW/cura.po | 2 +- resources/qml/Account/GeneralOperations.qml | 2 +- resources/qml/Account/UserOperations.qml | 2 +- resources/qml/Actions.qml | 2 +- resources/qml/Dialogs/AboutDialog.qml | 2 +- resources/qml/WelcomePages/AddPrinterByIpContent.qml | 2 +- resources/qml/WelcomePages/AddThirdPartyPrinter.qml | 2 +- .../qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml | 2 +- resources/qml/WelcomePages/AddUltimakerPrinter.qml | 2 +- resources/qml/WelcomePages/CloudContent.qml | 2 +- resources/qml/WelcomePages/DataCollectionsContent.qml | 2 +- resources/qml/WelcomePages/WelcomeContent.qml | 2 +- 47 files changed, 91 insertions(+), 86 deletions(-) diff --git a/CuraVersion.py.jinja b/CuraVersion.py.jinja index da5b0ac0ce..87ef7d205d 100644 --- a/CuraVersion.py.jinja +++ b/CuraVersion.py.jinja @@ -1,4 +1,4 @@ -# Copyright (c) 2022 UltiMaker B.V. +# Copyright (c) 2022 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. CuraAppName = "{{ cura_app_name }}" diff --git a/cura/ApplicationMetadata.py b/cura/ApplicationMetadata.py index 5bb5cbe29e..3a345cca26 100644 --- a/cura/ApplicationMetadata.py +++ b/cura/ApplicationMetadata.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 Ultimaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. # --------- # General constants used in Cura diff --git a/cura/CrashHandler.py b/cura/CrashHandler.py index af27193023..e6214d7073 100644 --- a/cura/CrashHandler.py +++ b/cura/CrashHandler.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 UltiMaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. import platform import traceback diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 4c6258880d..78185137af 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022 UltiMaker B.V. +# Copyright (c) 2022 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. import argparse #To run the engine in debug mode if the front-end is in debug mode. diff --git a/plugins/Marketplace/CloudSync/CloudPackageChecker.py b/plugins/Marketplace/CloudSync/CloudPackageChecker.py index a609052625..d3f20a84ed 100644 --- a/plugins/Marketplace/CloudSync/CloudPackageChecker.py +++ b/plugins/Marketplace/CloudSync/CloudPackageChecker.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 UltiMaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. import json from typing import List, Dict, Any, Set diff --git a/plugins/Marketplace/CloudSync/DownloadPresenter.py b/plugins/Marketplace/CloudSync/DownloadPresenter.py index 82755b3029..35764ad654 100644 --- a/plugins/Marketplace/CloudSync/DownloadPresenter.py +++ b/plugins/Marketplace/CloudSync/DownloadPresenter.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 UltiMaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. import tempfile from typing import Dict, List, Any diff --git a/plugins/Marketplace/resources/qml/ManagedPackages.qml b/plugins/Marketplace/resources/qml/ManagedPackages.qml index 6304705aa6..2280cc90ed 100644 --- a/plugins/Marketplace/resources/qml/ManagedPackages.qml +++ b/plugins/Marketplace/resources/qml/ManagedPackages.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.15 diff --git a/plugins/Marketplace/resources/qml/Materials.qml b/plugins/Marketplace/resources/qml/Materials.qml index 27cb75c332..6527a76358 100644 --- a/plugins/Marketplace/resources/qml/Materials.qml +++ b/plugins/Marketplace/resources/qml/Materials.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import UM 1.4 as UM diff --git a/plugins/Marketplace/resources/qml/Plugins.qml b/plugins/Marketplace/resources/qml/Plugins.qml index 68c66a6013..c4f96374dc 100644 --- a/plugins/Marketplace/resources/qml/Plugins.qml +++ b/plugins/Marketplace/resources/qml/Plugins.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import UM 1.4 as UM diff --git a/plugins/Marketplace/resources/qml/VerifiedIcon.qml b/plugins/Marketplace/resources/qml/VerifiedIcon.qml index e439d99860..dd22d40246 100644 --- a/plugins/Marketplace/resources/qml/VerifiedIcon.qml +++ b/plugins/Marketplace/resources/qml/VerifiedIcon.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.15 diff --git a/plugins/SliceInfoPlugin/MoreInfoWindow.qml b/plugins/SliceInfoPlugin/MoreInfoWindow.qml index 9a56823b40..e0954dc55e 100644 --- a/plugins/SliceInfoPlugin/MoreInfoWindow.qml +++ b/plugins/SliceInfoPlugin/MoreInfoWindow.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/plugins/UFPReader/__init__.py b/plugins/UFPReader/__init__.py index 33bdc14dae..ce4bf9730e 100644 --- a/plugins/UFPReader/__init__.py +++ b/plugins/UFPReader/__init__.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 UltiMaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. import sys diff --git a/plugins/UFPWriter/__init__.py b/plugins/UFPWriter/__init__.py index 48ffee327c..ae51f78e95 100644 --- a/plugins/UFPWriter/__init__.py +++ b/plugins/UFPWriter/__init__.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 UltiMaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. import sys diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 3340bc6f46..2488e55bd1 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.3 diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index 816bc8f8e8..ff581b0fb9 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.15 diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index d2363217b8..ae6d212e66 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 UltiMaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. from time import time import os diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index 346a55bf95..edfaafb3b1 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 UltiMaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. import os from typing import Dict, List, Optional, Set diff --git a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py index 4323c4ba21..417431d66d 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py @@ -1,5 +1,5 @@ -# Copyright (c) 2022 UltiMaker B.V. -# Cura is released under the terms of the LGPLv3 or higher. +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. from UM import i18nCatalog from UM.Message import Message diff --git a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml index abd3462fc6..cb176a3ae4 100644 --- a/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml +++ b/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/resources/i18n/cs_CZ/cura.po b/resources/i18n/cs_CZ/cura.po index 76b4af0c05..91464154cc 100644 --- a/resources/i18n/cs_CZ/cura.po +++ b/resources/i18n/cs_CZ/cura.po @@ -1,5 +1,5 @@ # Cura -# Copyright (C) 2022 Ultimaker B.V. +# Copyright (C) 2022 UltiMaker. # This file is distributed under the same license as the Cura package. # Ultimaker , 2022. # diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index be5e9cb17f..6b37013b1b 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index c6252c049a..a4d3f04281 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index 11e2a0c9ac..27ca3cfd29 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -1,6 +1,7 @@ # Cura -# Copyright (C) 2022 Ultimaker B.V. +# Copyright (C) 2022 UltiMaker. # This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # msgid "" msgstr "" diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index e981217e50..ae8fd056b9 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/hu_HU/cura.po b/resources/i18n/hu_HU/cura.po index a750481076..a94f8497e1 100644 --- a/resources/i18n/hu_HU/cura.po +++ b/resources/i18n/hu_HU/cura.po @@ -1,6 +1,7 @@ # Cura -# Copyright (C) 2022 Ultimaker B.V. +# Copyright (C) 2022 UltiMaker. # This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # msgid "" msgstr "" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index 7ac562c9d1..daafb0dde2 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po index 0b54860834..86e7bb2157 100644 --- a/resources/i18n/ja_JP/cura.po +++ b/resources/i18n/ja_JP/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po index f9c23f1387..d8af39c3cb 100644 --- a/resources/i18n/ko_KR/cura.po +++ b/resources/i18n/ko_KR/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index b9517c0982..9c6c89a143 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index f6d2876f69..d3a2fd7193 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -1,6 +1,7 @@ # Cura -# Copyright (C) 2022 Ultimaker B.V. +# Copyright (C) 2022 UltiMaker. # This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # msgid "" msgstr "" diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index fe03d09f15..a82984901c 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -1,6 +1,7 @@ # Cura -# Copyright (C) 2022 Ultimaker B.V. +# Copyright (C) 2022 UltiMaker. # This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # msgid "" msgstr "" diff --git a/resources/i18n/pt_PT/cura.po b/resources/i18n/pt_PT/cura.po index 594336f7f1..2efea0fed7 100644 --- a/resources/i18n/pt_PT/cura.po +++ b/resources/i18n/pt_PT/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index e605f48f5b..9717170f8c 100644 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index 5d3f5ee9b9..a5be821147 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index a7a5c1b211..57a0bc9780 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -1,6 +1,7 @@ # Cura -# Copyright (C) 2022 Ultimaker B.V. +# Copyright (C) 2022 UltiMaker. # This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # msgid "" msgstr "" diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po index 46753f77e6..7b4962a0f0 100644 --- a/resources/i18n/zh_TW/cura.po +++ b/resources/i18n/zh_TW/cura.po @@ -1,5 +1,5 @@ # Cura -# Copyright (C) 2022 Ultimaker B.V. +# Copyright (C) 2022 UltiMaker. # This file is distributed under the same license as the Cura package. # Ultimaker , 2022. # diff --git a/resources/qml/Account/GeneralOperations.qml b/resources/qml/Account/GeneralOperations.qml index bdc2a37aca..3ebb197142 100644 --- a/resources/qml/Account/GeneralOperations.qml +++ b/resources/qml/Account/GeneralOperations.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index 144e9a1b65..52d9cfc344 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/resources/qml/Actions.qml b/resources/qml/Actions.qml index be94c53bef..d48d8e610f 100644 --- a/resources/qml/Actions.qml +++ b/resources/qml/Actions.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. pragma Singleton diff --git a/resources/qml/Dialogs/AboutDialog.qml b/resources/qml/Dialogs/AboutDialog.qml index 1eb9bd00ef..4ccf58d0b4 100644 --- a/resources/qml/Dialogs/AboutDialog.qml +++ b/resources/qml/Dialogs/AboutDialog.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 diff --git a/resources/qml/WelcomePages/AddPrinterByIpContent.qml b/resources/qml/WelcomePages/AddPrinterByIpContent.qml index a91cef0ef7..9cc5b85f04 100644 --- a/resources/qml/WelcomePages/AddPrinterByIpContent.qml +++ b/resources/qml/WelcomePages/AddPrinterByIpContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.15 diff --git a/resources/qml/WelcomePages/AddThirdPartyPrinter.qml b/resources/qml/WelcomePages/AddThirdPartyPrinter.qml index 598209760a..2c6c3a19bf 100644 --- a/resources/qml/WelcomePages/AddThirdPartyPrinter.qml +++ b/resources/qml/WelcomePages/AddThirdPartyPrinter.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml b/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml index 4b7a07881a..9b6ae0caf4 100644 --- a/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml +++ b/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/resources/qml/WelcomePages/AddUltimakerPrinter.qml b/resources/qml/WelcomePages/AddUltimakerPrinter.qml index 54d1b55483..f66b8de2de 100644 --- a/resources/qml/WelcomePages/AddUltimakerPrinter.qml +++ b/resources/qml/WelcomePages/AddUltimakerPrinter.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/resources/qml/WelcomePages/CloudContent.qml b/resources/qml/WelcomePages/CloudContent.qml index 7d9dd79142..ee0c9ae43b 100644 --- a/resources/qml/WelcomePages/CloudContent.qml +++ b/resources/qml/WelcomePages/CloudContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/resources/qml/WelcomePages/DataCollectionsContent.qml b/resources/qml/WelcomePages/DataCollectionsContent.qml index 16e6e07899..7fb457e40d 100644 --- a/resources/qml/WelcomePages/DataCollectionsContent.qml +++ b/resources/qml/WelcomePages/DataCollectionsContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 diff --git a/resources/qml/WelcomePages/WelcomeContent.qml b/resources/qml/WelcomePages/WelcomeContent.qml index d3a3404c28..ecfa5db68f 100644 --- a/resources/qml/WelcomePages/WelcomeContent.qml +++ b/resources/qml/WelcomePages/WelcomeContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2022 UltiMaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 From 3be55812431bbc8999daf27ee2945c9487efedf0 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 11:03:45 +0100 Subject: [PATCH 158/185] Update NSIS scripts using UltiMaker Contributes to CURA-9808 --- packaging/NSIS/Ultimaker-Cura.nsi.jinja | 16 ++++++++-------- packaging/NSIS/create_windows_installer.py | 22 ++++++++++++---------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/packaging/NSIS/Ultimaker-Cura.nsi.jinja b/packaging/NSIS/Ultimaker-Cura.nsi.jinja index 39543d9921..9996b24773 100644 --- a/packaging/NSIS/Ultimaker-Cura.nsi.jinja +++ b/packaging/NSIS/Ultimaker-Cura.nsi.jinja @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker B.V. # Cura's build system is released under the terms of the AGPLv3 or higher. !define APP_NAME "{{ app_name }}" @@ -64,7 +64,7 @@ InstallDir "$PROGRAMFILES64\${APP_NAME}" !ifdef REG_START_MENU !define MUI_STARTMENUPAGE_NODISABLE -!define MUI_STARTMENUPAGE_DEFAULTFOLDER "Ultimaker Cura" +!define MUI_STARTMENUPAGE_DEFAULTFOLDER "UltiMaker Cura" !define MUI_STARTMENUPAGE_REGISTRY_ROOT "${REG_ROOT}" !define MUI_STARTMENUPAGE_REGISTRY_KEY "${UNINSTALL_PATH}" !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${REG_START_MENU}" @@ -113,8 +113,8 @@ CreateShortCut "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP_EXE CreateShortCut "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe" !ifdef WEB_SITE -WriteIniStr "$INSTDIR\Ultimaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}" -CreateShortCut "$SMPROGRAMS\$SM_Folder\Ultimaker Cura website.lnk" "$INSTDIR\Ultimaker Cura website.url" +WriteIniStr "$INSTDIR\UltiMaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}" +CreateShortCut "$SMPROGRAMS\$SM_Folder\UltiMaker Cura website.lnk" "$INSTDIR\UltiMaker Cura website.url" !endif !insertmacro MUI_STARTMENU_WRITE_END !endif @@ -125,8 +125,8 @@ CreateShortCut "$SMPROGRAMS\{{ app_name }}\${APP_NAME}.lnk" "$INSTDIR\${MAIN_APP CreateShortCut "$SMPROGRAMS\{{ app_name }}\Uninstall ${APP_NAME}.lnk" "$INSTDIR\uninstall.exe" !ifdef WEB_SITE -WriteIniStr "$INSTDIR\Ultimaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}" -CreateShortCut "$SMPROGRAMS\{{ app_name }}\Ultimaker Cura website.lnk" "$INSTDIR\Ultimaker Cura website.url" +WriteIniStr "$INSTDIR\UltiMaker Cura website.url" "InternetShortcut" "URL" "${WEB_SITE}" +CreateShortCut "$SMPROGRAMS\{{ app_name }}\UltiMaker Cura website.lnk" "$INSTDIR\UltiMaker Cura website.url" !endif !endif @@ -170,7 +170,7 @@ RmDir /r /REBOOTOK "$INSTDIR" Delete "$SMPROGRAMS\$SM_Folder\${APP_NAME}.lnk" Delete "$SMPROGRAMS\$SM_Folder\Uninstall ${APP_NAME}.lnk" !ifdef WEB_SITE -Delete "$SMPROGRAMS\$SM_Folder\Ultimaker Cura website.lnk" +Delete "$SMPROGRAMS\$SM_Folder\UltiMaker Cura website.lnk" !endif RmDir "$SMPROGRAMS\$SM_Folder" !endif @@ -179,7 +179,7 @@ RmDir "$SMPROGRAMS\$SM_Folder" Delete "$SMPROGRAMS\{{ app_name }}\${APP_NAME}.lnk" Delete "$SMPROGRAMS\{{ app_name }}\Uninstall ${APP_NAME}.lnk" !ifdef WEB_SITE -Delete "$SMPROGRAMS\{{ app_name }}\Ultimaker Cura website.lnk" +Delete "$SMPROGRAMS\{{ app_name }}\UltiMaker Cura website.lnk" !endif RmDir "$SMPROGRAMS\{{ app_name }}" !endif diff --git a/packaging/NSIS/create_windows_installer.py b/packaging/NSIS/create_windows_installer.py index c8d28c82a4..5ec31c8e35 100644 --- a/packaging/NSIS/create_windows_installer.py +++ b/packaging/NSIS/create_windows_installer.py @@ -1,5 +1,7 @@ -# Copyright (c) 2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. + + import os import argparse # Command line arguments parsing and help. import subprocess @@ -16,15 +18,15 @@ def generate_nsi(source_path: str, dist_path: str, filename: str): dist_loc = Path(os.getcwd(), dist_path) source_loc = Path(os.getcwd(), source_path) instdir = Path("$INSTDIR") - dist_paths = [p.relative_to(dist_loc.joinpath("Ultimaker-Cura")) for p in sorted(dist_loc.joinpath("Ultimaker-Cura").rglob("*")) if p.is_file()] + dist_paths = [p.relative_to(dist_loc.joinpath("UltiMaker-Cura")) for p in sorted(dist_loc.joinpath("UltiMaker-Cura").rglob("*")) if p.is_file()] mapped_out_paths = {} for dist_path in dist_paths: if "__pycache__" not in dist_path.parts: out_path = instdir.joinpath(dist_path).parent if out_path not in mapped_out_paths: - mapped_out_paths[out_path] = [(dist_loc.joinpath("Ultimaker-Cura", dist_path), instdir.joinpath(dist_path))] + mapped_out_paths[out_path] = [(dist_loc.joinpath("UltiMaker-Cura", dist_path), instdir.joinpath(dist_path))] else: - mapped_out_paths[out_path].append((dist_loc.joinpath("Ultimaker-Cura", dist_path), instdir.joinpath(dist_path))) + mapped_out_paths[out_path].append((dist_loc.joinpath("UltiMaker-Cura", dist_path), instdir.joinpath(dist_path))) rmdir_paths = set() for rmdir_f in mapped_out_paths.values(): @@ -40,13 +42,13 @@ def generate_nsi(source_path: str, dist_path: str, filename: str): nsis_content = template.render( - app_name = f"Ultimaker Cura {os.getenv('CURA_VERSION_FULL')}", - main_app = "Ultimaker-Cura.exe", + app_name = f"UltiMaker Cura {os.getenv('CURA_VERSION_FULL')}", + main_app = "UltiMaker-Cura.exe", version = os.getenv('CURA_VERSION_FULL'), version_major = os.environ.get("CURA_VERSION_MAJOR"), version_minor = os.environ.get("CURA_VERSION_MINOR"), version_patch = os.environ.get("CURA_VERSION_PATCH"), - company = "Ultimaker B.V.", + company = "UltiMaker", web_site = "https://ultimaker.com", year = datetime.now().year, cura_license_file = str(source_loc.joinpath("packaging", "cura_license.txt")), @@ -58,7 +60,7 @@ def generate_nsi(source_path: str, dist_path: str, filename: str): destination = filename ) - with open(dist_loc.joinpath("Ultimaker-Cura.nsi"), "w") as f: + with open(dist_loc.joinpath("UltiMaker-Cura.nsi"), "w") as f: f.write(nsis_content) shutil.copy(source_loc.joinpath("packaging", "NSIS", "fileassoc.nsh"), dist_loc.joinpath("fileassoc.nsh")) @@ -66,7 +68,7 @@ def generate_nsi(source_path: str, dist_path: str, filename: str): def build(dist_path: str): dist_loc = Path(os.getcwd(), dist_path) - command = ["makensis", "/V2", "/P4", str(dist_loc.joinpath("Ultimaker-Cura.nsi"))] + command = ["makensis", "/V2", "/P4", str(dist_loc.joinpath("UltiMaker-Cura.nsi"))] subprocess.run(command) @@ -74,7 +76,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description = "Create Windows exe installer of Cura.") parser.add_argument("source_path", type=str, help="Path to Conan install Cura folder.") parser.add_argument("dist_path", type=str, help="Path to Pyinstaller dist folder") - parser.add_argument("filename", type = str, help = "Filename of the exe (e.g. 'Ultimaker-Cura-5.1.0-beta-Windows-X64.exe')") + parser.add_argument("filename", type = str, help = "Filename of the exe (e.g. 'UltiMaker-Cura-5.1.0-beta-Windows-X64.exe')") args = parser.parse_args() generate_nsi(args.source_path, args.dist_path, args.filename) build(args.dist_path) From a727228a12e8b982a87cb825f6e90b7e89b0d07b Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 11:05:59 +0100 Subject: [PATCH 159/185] Update dmg scripts using UltiMaker Contributes to CURA-9808 --- packaging/dmg/dmg_sign_noterize.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packaging/dmg/dmg_sign_noterize.py b/packaging/dmg/dmg_sign_noterize.py index 8baf58e43c..fcda1e378e 100644 --- a/packaging/dmg/dmg_sign_noterize.py +++ b/packaging/dmg/dmg_sign_noterize.py @@ -1,3 +1,7 @@ +# Copyright (c) 2022 UltiMaker +# Cura is released under the terms of the LGPLv3 or higher. + + import os import argparse # Command line arguments parsing and help. import subprocess @@ -14,11 +18,11 @@ def build_dmg(source_path: str, dist_path: str, filename: str) -> None: "--app-drop-link", "520", "272", "--volicon", f"{source_path}/packaging/icons/VolumeIcons_Cura.icns", "--icon-size", "90", - "--icon", "Ultimaker-Cura.app", "169", "272", + "--icon", "UltiMaker-Cura.app", "169", "272", "--eula", f"{source_path}/packaging/cura_license.txt", "--background", f"{source_path}/packaging/dmg/cura_background_dmg.png", f"{dist_path}/{filename}", - f"{dist_path}/Ultimaker-Cura.app"] + f"{dist_path}/UltiMaker-Cura.app"] subprocess.run(arguments) @@ -57,7 +61,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description = "Create dmg of Cura.") parser.add_argument("source_path", type=str, help="Path to Conan install Cura folder.") parser.add_argument("dist_path", type=str, help="Path to Pyinstaller dist folder") - parser.add_argument("filename", type = str, help = "Filename of the dmg (e.g. 'Ultimaker-Cura-5.1.0-beta-Linux-X64.dmg')") + parser.add_argument("filename", type = str, help = "Filename of the dmg (e.g. 'UltiMaker-Cura-5.1.0-beta-Linux-X64.dmg')") args = parser.parse_args() build_dmg(args.source_path, args.dist_path, args.filename) sign(args.dist_path, args.filename) From 14eb9371f65392a1cfef10e10ad7b70d9e4e7063 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 11:12:37 +0100 Subject: [PATCH 160/185] Update AppImage scripts using UltiMaker Contributes to CURA-9808 --- packaging/AppImage/AppRun | 2 +- packaging/AppImage/create_appimage.py | 5 +++-- packaging/AppImage/cura.appdata.xml | 6 +++--- packaging/AppImage/cura.desktop.jinja | 6 +++--- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packaging/AppImage/AppRun b/packaging/AppImage/AppRun index 14ee0e4d8e..d0ebfe1742 100644 --- a/packaging/AppImage/AppRun +++ b/packaging/AppImage/AppRun @@ -17,4 +17,4 @@ export OPENSSL_CONF="$scriptdir/openssl.cnf" # unset `QT_STYLE_OVERRIDE` as a precaution unset QT_STYLE_OVERRIDE -$scriptdir/Ultimaker-Cura "$@" +$scriptdir/UltiMaker-Cura "$@" diff --git a/packaging/AppImage/create_appimage.py b/packaging/AppImage/create_appimage.py index bb8396f43c..242c45aa5d 100644 --- a/packaging/AppImage/create_appimage.py +++ b/packaging/AppImage/create_appimage.py @@ -1,6 +1,7 @@ -# Copyright (c) 2022 Ultimaker B.V. +# Copyright (c) 2022 UltiMaker # Cura is released under the terms of the LGPLv3 or higher. + import argparse # Command line arguments parsing and help. from jinja2 import Template import os # Finding installation directory. @@ -71,6 +72,6 @@ if __name__ == "__main__": parser = argparse.ArgumentParser(description = "Create AppImages of Cura.") parser.add_argument("dist_path", type=str, help="Path to where PyInstaller installed the distribution of Cura.") parser.add_argument("version", type=str, help="Full version number of Cura (e.g. '5.1.0-beta')") - parser.add_argument("filename", type = str, help = "Filename of the AppImage (e.g. 'Ultimaker-Cura-5.1.0-beta-Linux-X64.AppImage')") + parser.add_argument("filename", type = str, help = "Filename of the AppImage (e.g. 'UltiMaker-Cura-5.1.0-beta-Linux-X64.AppImage')") args = parser.parse_args() build_appimage(args.dist_path, args.version, args.filename) diff --git a/packaging/AppImage/cura.appdata.xml b/packaging/AppImage/cura.appdata.xml index de940af939..5f187b8bb8 100644 --- a/packaging/AppImage/cura.appdata.xml +++ b/packaging/AppImage/cura.appdata.xml @@ -3,16 +3,16 @@ com.ultimaker.cura CC0-1.0 LGPL-3.0 - Ultimaker Cura + UltiMaker Cura Slicer to prepare your 3D printing projects -

    Ultimaker Cura is a slicer, an application that prepares your model for 3D printing. Optimized, expert-tested profiles for 3D printers and materials mean you can start printing reliably in no time. And with industry-standard software integration, you can streamline your workflow for maximum efficiency.

    +

    UltiMaker Cura is a slicer, an application that prepares your model for 3D printing. Optimized, expert-tested profiles for 3D printers and materials mean you can start printing reliably in no time. And with industry-standard software integration, you can streamline your workflow for maximum efficiency.

    https://ultimaker.com/en/software/ultimaker-cura Print preparation screen - https://raw.githubusercontent.com/Ultimaker/Cura/master/screenshot.png + https://raw.githubusercontent.com/Ultimaker/Cura/main/cura-logo.PNG diff --git a/packaging/AppImage/cura.desktop.jinja b/packaging/AppImage/cura.desktop.jinja index 1026d10cb0..1230d4ff5c 100644 --- a/packaging/AppImage/cura.desktop.jinja +++ b/packaging/AppImage/cura.desktop.jinja @@ -1,11 +1,11 @@ [Desktop Entry] -Name=Ultimaker Cura -Name[de]=Ultimaker Cura +Name=UltiMaker Cura +Name[de]=UltiMaker Cura GenericName=3D Printing Software GenericName[de]=3D-Druck-Software GenericName[nl]=3D-Print Software Comment=Cura converts 3D models into paths for a 3D printer. It prepares your print for maximum accuracy, minimum printing time and good reliability with many extra features that make your print come out great. -Exec=Ultimaker-Cura %F +Exec=UltiMaker-Cura %F Icon=cura-icon Terminal=false Type=Application From ed6018d4ad9818390d5a0adbe723ef18e75c2c3e Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 11:22:11 +0100 Subject: [PATCH 161/185] Update pyinstaller scripts using UltiMaker Contributes to CURA-9808 --- .github/workflows/cura-installer.yml | 14 +++++++------- ...er-Cura.spec.jinja => UltiMaker-Cura.spec.jinja | 0 conanfile.py | 6 +++--- 3 files changed, 10 insertions(+), 10 deletions(-) rename Ultimaker-Cura.spec.jinja => UltiMaker-Cura.spec.jinja (100%) diff --git a/.github/workflows/cura-installer.yml b/.github/workflows/cura-installer.yml index 8b1ea6e390..082c707488 100644 --- a/.github/workflows/cura-installer.yml +++ b/.github/workflows/cura-installer.yml @@ -212,38 +212,38 @@ jobs: cp openssl/lib/*.lib ./cura_inst/Lib/ - name: Create the Cura dist - run: pyinstaller ./cura_inst/Ultimaker-Cura.spec + run: pyinstaller ./cura_inst/UltiMaker-Cura.spec - name: Archive the artifacts (bash) if: ${{ github.event.inputs.installer == 'false' && runner.os != 'Windows' }} - run: tar -zcf "./Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.tar.gz" "./Ultimaker-Cura/" + run: tar -zcf "./UltiMaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.tar.gz" "./UltiMaker-Cura/" working-directory: dist - name: Archive the artifacts (Powershell) if: ${{ github.event.inputs.installer == 'false' && runner.os == 'Windows' }} - run: Compress-Archive -Path ".\Ultimaker-Cura" -DestinationPath ".\Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.zip" + run: Compress-Archive -Path ".\UltiMaker-Cura" -DestinationPath ".\UltiMaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.zip" working-directory: dist - name: Create the Windows exe installer (Powershell) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Windows' }} run: | - python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "Ultimaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.exe" + python ..\cura_inst\packaging\NSIS\create_windows_installer.py ../cura_inst . "UltiMaker-Cura-$Env:CURA_VERSION_FULL-${{ inputs.os_name }}.exe" working-directory: dist - name: Create the Linux AppImage (Bash) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Linux' }} - run: python ../cura_inst/packaging/AppImage/create_appimage.py ./Ultimaker-Cura $CURA_VERSION_FULL "Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.AppImage" + run: python ../cura_inst/packaging/AppImage/create_appimage.py ./UltiMaker-Cura $CURA_VERSION_FULL "UltiMaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.AppImage" working-directory: dist - name: Create the MacOS dmg (Bash) if: ${{ github.event.inputs.installer == 'true' && runner.os == 'Macos' }} - run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "Ultimaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.dmg" + run: python ../cura_inst/packaging/dmg/dmg_sign_noterize.py ../cura_inst . "UltiMaker-Cura-$CURA_VERSION_FULL-${{ inputs.os_name }}.dmg" working-directory: dist - name: Upload the artifacts uses: actions/upload-artifact@v3 with: - name: Ultimaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ inputs.os_name }} + name: UltiMaker-Cura-${{ env.CURA_VERSION_FULL }}-${{ inputs.os_name }} path: | dist/*.tar.gz dist/*.zip diff --git a/Ultimaker-Cura.spec.jinja b/UltiMaker-Cura.spec.jinja similarity index 100% rename from Ultimaker-Cura.spec.jinja rename to UltiMaker-Cura.spec.jinja diff --git a/conanfile.py b/conanfile.py index d890885794..111d4f9b9c 100644 --- a/conanfile.py +++ b/conanfile.py @@ -21,7 +21,7 @@ class CuraConan(ConanFile): description = "3D printer / slicing GUI built on top of the Uranium framework" topics = ("conan", "python", "pyqt5", "qt", "qml", "3d-printing", "slicer") build_policy = "missing" - exports = "LICENSE*", "Ultimaker-Cura.spec.jinja", "CuraVersion.py.jinja" + exports = "LICENSE*", "UltiMaker-Cura.spec.jinja", "CuraVersion.py.jinja" settings = "os", "compiler", "build_type", "arch" no_copy_source = True # We won't build so no need to copy sources to the build folder @@ -226,13 +226,13 @@ class CuraConan(ConanFile): # Collect all dll's from PyQt6 and place them in the root binaries.extend([(f"{p}", ".") for p in Path(self._site_packages, "PyQt6", "Qt6").glob("**/*.dll")]) - with open(Path(__file__).parent.joinpath("Ultimaker-Cura.spec.jinja"), "r") as f: + with open(Path(__file__).parent.joinpath("UltiMaker-Cura.spec.jinja"), "r") as f: pyinstaller = Template(f.read()) version = self.conf_info.get("user.cura:version", default = self.version, check_type = str) cura_version = Version(version) - with open(Path(location, "Ultimaker-Cura.spec"), "w") as f: + with open(Path(location, "UltiMaker-Cura.spec"), "w") as f: f.write(pyinstaller.render( name = str(self.options.display_name).replace(" ", "-"), display_name = self.options.display_name, From a645fa7d96cbf4da5c09943cf472c951d8f5f316 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Mon, 28 Nov 2022 11:22:53 +0100 Subject: [PATCH 162/185] Use bracket to initialise list Co-authored-by: Joey de l'Arago --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 657eeb6089..28a79b6fd3 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1634,7 +1634,7 @@ class MachineManager(QObject): @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) def activeQualityDisplayNameStringParts(self) -> [str]: result_map = self.activeQualityDisplayNameMap - string_parts = list() + string_parts = [] if result_map["custom_profile"] is not None: string_parts.append(result_map["custom_profile"]) From f297909a82cf3b852df25ad270bc896c509cfe23 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Mon, 28 Nov 2022 11:23:53 +0100 Subject: [PATCH 163/185] Fix type signature of function Co-authored-by: Joey de l'Arago --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 28a79b6fd3..fabfc27db8 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1632,7 +1632,7 @@ class MachineManager(QObject): # - "my_profile - Fine" (only based on a default quality, no intent involved) # - "my_profile - Engineering - Fine" (based on an intent) @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) - def activeQualityDisplayNameStringParts(self) -> [str]: + def activeQualityDisplayNameStringParts(self) -> List[str]: result_map = self.activeQualityDisplayNameMap string_parts = [] From a5b8ea93d935ac7bbb105c0eac311d431213a449 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 11:32:07 +0100 Subject: [PATCH 164/185] Use UltiMaker for bundled plugins Contributes to CURA-9808 --- resources/bundled_packages/cura.json | 138 +++++++++++++-------------- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index 6e28222597..cdcd88f709 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -10,7 +10,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -27,7 +27,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -61,7 +61,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -78,7 +78,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -95,7 +95,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -112,7 +112,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -129,7 +129,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -146,7 +146,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -163,7 +163,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -180,7 +180,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -197,7 +197,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -214,7 +214,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -248,7 +248,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -265,7 +265,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -282,7 +282,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -316,7 +316,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -333,7 +333,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -350,7 +350,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -367,7 +367,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -384,7 +384,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -401,7 +401,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -418,7 +418,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -435,7 +435,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -452,7 +452,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -469,7 +469,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -486,7 +486,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -503,7 +503,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -520,7 +520,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -537,7 +537,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -554,7 +554,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -571,7 +571,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -588,7 +588,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -605,7 +605,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -622,7 +622,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -639,7 +639,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -656,7 +656,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -673,7 +673,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -690,7 +690,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -707,7 +707,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -724,7 +724,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -741,7 +741,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -758,7 +758,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -775,7 +775,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -792,7 +792,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -809,7 +809,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -826,7 +826,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -843,7 +843,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -860,7 +860,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -877,7 +877,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -894,7 +894,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -911,7 +911,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -928,7 +928,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -945,7 +945,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -962,7 +962,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -979,7 +979,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -997,7 +997,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -1031,7 +1031,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -1048,7 +1048,7 @@ "website": "https://ultimaker.com", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "plugins@ultimaker.com", "website": "https://ultimaker.com" } @@ -1609,7 +1609,7 @@ "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1628,7 +1628,7 @@ "website": "https://ultimaker.com/products/materials/breakaway", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1647,7 +1647,7 @@ "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1666,7 +1666,7 @@ "website": "https://ultimaker.com/products/materials/cpe", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1685,7 +1685,7 @@ "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1704,7 +1704,7 @@ "website": "https://ultimaker.com/products/materials/pc", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1723,7 +1723,7 @@ "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1742,7 +1742,7 @@ "website": "https://ultimaker.com/products/materials/pp", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1761,7 +1761,7 @@ "website": "https://ultimaker.com/products/materials/abs", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1780,7 +1780,7 @@ "website": "https://ultimaker.com/products/materials/tpu-95a", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", @@ -1799,7 +1799,7 @@ "website": "https://ultimaker.com/products/materials/tough-pla", "author": { "author_id": "UltimakerPackages", - "display_name": "Ultimaker B.V.", + "display_name": "UltiMaker", "email": "materials@ultimaker.com", "website": "https://ultimaker.com", "description": "Professional 3D printing made accessible.", From b1ec8599d28616f2da9f59a05f22a228afb1dcc4 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 11:39:07 +0100 Subject: [PATCH 165/185] Use UltiMaker for themes Contributes to CURA-9808 --- resources/themes/cura-dark/theme.json | 2 +- resources/themes/cura-light/theme.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/themes/cura-dark/theme.json b/resources/themes/cura-dark/theme.json index 7fd5d797cd..ead7bbcb2f 100644 --- a/resources/themes/cura-dark/theme.json +++ b/resources/themes/cura-dark/theme.json @@ -1,6 +1,6 @@ { "metadata": { - "name": "Ultimaker Dark", + "name": "UltiMaker Dark", "inherits": "cura-light" }, diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json index 809bcfdee8..22986b3d68 100644 --- a/resources/themes/cura-light/theme.json +++ b/resources/themes/cura-light/theme.json @@ -1,6 +1,6 @@ { "metadata": { - "name": "Ultimaker" + "name": "UltiMaker" }, "fonts": { From 99f308bd3c5c55f8e530abb8aeda7a7b8d36fe3b Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 12:39:34 +0100 Subject: [PATCH 166/185] Update pot files to use UltiMaker Contributes to CURA-9808 --- resources/i18n/cura.pot | 76 ++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 1f7068c22a..514b2b21cd 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -1,7 +1,7 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. +# Cura +# Copyright (C) 2022 UltiMaker. +# This file is distributed under the same license as the Cura package. +# Ultimaker , 2022. # #, fuzzy msgid "" @@ -442,7 +442,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:277 msgctxt "@info" -msgid "Unable to reach the Ultimaker account server." +msgid "Unable to reach the UltiMaker account server." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/OAuth2/AuthorizationService.py:278 @@ -732,7 +732,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" -msgid "Send crash report to Ultimaker" +msgid "Send crash report to UltiMaker" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 @@ -932,7 +932,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" -msgid "New printer detected from your Ultimaker account" +msgid "New printer detected from your UltiMaker account" msgid_plural "New printers detected from your Ultimaker account" msgstr[0] "" msgstr[1] "" @@ -1058,7 +1058,7 @@ msgstr[1] "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "Ultimaker Digital Factory" +msgid "UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 @@ -1206,7 +1206,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in Ultimaker Digital Factory" +msgid "Track the print in UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 @@ -1317,7 +1317,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPWriter/__init__.py:28 #: /Users/c.lamboo/ultimaker/Cura/plugins/UFPReader/__init__.py:22 msgctxt "@item:inlistbox" -msgid "Ultimaker Format Package" +msgid "UltiMaker Format Package" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/DigitalLibrary/src/DigitalFactoryProjectResponse.py:19 @@ -1441,7 +1441,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:145 #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/DownloadPresenter.py:95 msgctxt "@info:title" -msgid "Changes detected from your Ultimaker account" +msgid "Changes detected from your UltiMaker account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/CloudSync/CloudPackageChecker.py:147 @@ -1604,7 +1604,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:169 msgctxt "@message:description" -msgid "Report a bug on Ultimaker Cura's issue tracker." +msgid "Report a bug on UltiMaker Cura's issue tracker." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/CuraEngineBackend/CuraEngineBackend.py:401 @@ -2486,7 +2486,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -2825,7 +2825,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:30 msgctxt "@label" -msgid "Please select any upgrades made to this Ultimaker Original" +msgid "Please select any upgrades made to this UltiMaker Original" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UltimakerMachineActions/UMOUpgradeSelectionMachineAction.qml:39 @@ -3114,17 +3114,17 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:21 msgctxt "@info" -msgid "Ultimaker Verified Plug-in" +msgid "UltiMaker Verified Plug-in" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:22 msgctxt "@info" -msgid "Ultimaker Certified Material" +msgid "UltiMaker Certified Material" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/VerifiedIcon.qml:23 msgctxt "@info" -msgid "Ultimaker Verified Package" +msgid "UltiMaker Verified Package" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:11 @@ -4775,7 +4775,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:64 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:19 msgctxt "@label" -msgid "Sign in to the Ultimaker platform" +msgid "Sign in to the UltiMaker platform" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:123 @@ -4790,7 +4790,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:175 msgctxt "@text" -msgid "Share ideas and get help from 48,000+ users in the Ultimaker Community" +msgid "Share ideas and get help from 48,000+ users in the UltiMaker Community" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:189 @@ -4800,12 +4800,12 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/CloudContent.qml:201 msgctxt "@text" -msgid "Create a free Ultimaker Account" +msgid "Create a free UltiMaker Account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:24 msgctxt "@label" -msgid "Help us to improve Ultimaker Cura" +msgid "Help us to improve UltiMaker Cura" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 @@ -4909,7 +4909,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:196 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:201 msgctxt "@label" -msgid "Can't connect to your Ultimaker printer?" +msgid "Can't connect to your UltiMaker printer?" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/AddPrinterByIpContent.qml:200 @@ -4931,7 +4931,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:56 msgctxt "@label" -msgid "Welcome to Ultimaker Cura" +msgid "Welcome to UltiMaker Cura" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 @@ -5822,7 +5822,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in Ultimaker Digital Factory." +msgid "Monitor printers in UltiMaker Digital Factory." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 @@ -5842,22 +5842,22 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:55 msgctxt "@tooltip:button" -msgid "Extend Ultimaker Cura with plugins and material profiles." +msgid "Extend UltiMaker Cura with plugins and material profiles." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:62 msgctxt "@tooltip:button" -msgid "Become a 3D printing expert with Ultimaker e-learning." +msgid "Become a 3D printing expert with UltiMaker e-learning." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:67 msgctxt "@label:button" -msgid "Ultimaker support" +msgid "UltiMaker support" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:69 msgctxt "@tooltip:button" -msgid "Learn how to get started with Ultimaker Cura." +msgid "Learn how to get started with UltiMaker Cura." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:74 @@ -5867,7 +5867,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:76 msgctxt "@tooltip:button" -msgid "Consult the Ultimaker Community." +msgid "Consult the UltiMaker Community." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:81 @@ -5882,7 +5882,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:90 msgctxt "@tooltip:button" -msgid "Visit the Ultimaker website." +msgid "Visit the UltiMaker website." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrintSetupSelector/Recommended/RecommendedSupportSelector.qml:40 @@ -6196,7 +6196,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" -msgid "Create a free Ultimaker account" +msgid "Create a free UltiMaker account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/AccountWidget.qml:24 @@ -6211,7 +6211,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:107 msgctxt "@button" -msgid "Ultimaker Account" +msgid "UltiMaker Account" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/UserOperations.qml:126 @@ -6436,12 +6436,12 @@ msgstr "" #: /UM3NetworkPrinting/plugin.json msgctxt "description" -msgid "Manages network connections to Ultimaker networked printers." +msgid "Manages network connections to UltiMaker networked printers." msgstr "" #: /UM3NetworkPrinting/plugin.json msgctxt "name" -msgid "Ultimaker Network Connection" +msgid "UltiMaker Network Connection" msgstr "" #: /3MFWriter/plugin.json @@ -6476,7 +6476,7 @@ msgstr "" #: /UFPWriter/plugin.json msgctxt "description" -msgid "Provides support for writing Ultimaker Format Packages." +msgid "Provides support for writing UltiMaker Format Packages." msgstr "" #: /UFPWriter/plugin.json @@ -6493,7 +6493,7 @@ msgstr "" #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "Ultimaker Digital Library" +msgid "UltiMaker Digital Library" msgstr "" #: /GCodeProfileReader/plugin.json @@ -6535,7 +6535,7 @@ msgstr "" #: /UltimakerMachineActions/plugin.json msgctxt "name" -msgid "Ultimaker machine actions" +msgid "UltiMaker machine actions" msgstr "" #: /GCodeGzReader/plugin.json @@ -6905,7 +6905,7 @@ msgstr "" #: /UFPReader/plugin.json msgctxt "description" -msgid "Provides support for reading Ultimaker Format Packages." +msgid "Provides support for reading UltiMaker Format Packages." msgstr "" #: /UFPReader/plugin.json From 8dcccd941b72fc1f9e5324937cecec1eeb2b6234 Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 28 Nov 2022 12:40:35 +0100 Subject: [PATCH 167/185] Add dataclass for ActiveQuality. Move some logic out of MachineManager into ActiveQuality. CURA-9793 --- cura/Settings/ActiveQuality.py | 37 ++++++++++++++++++++++++++ cura/Settings/MachineManager.py | 46 +++++++-------------------------- plugins/UFPWriter/UFPWriter.py | 3 ++- 3 files changed, 49 insertions(+), 37 deletions(-) create mode 100644 cura/Settings/ActiveQuality.py diff --git a/cura/Settings/ActiveQuality.py b/cura/Settings/ActiveQuality.py new file mode 100644 index 0000000000..48af2c5d1a --- /dev/null +++ b/cura/Settings/ActiveQuality.py @@ -0,0 +1,37 @@ +from dataclasses import dataclass +from typing import List + +from UM import i18nCatalog + +catalog = i18nCatalog("cura") + + +@dataclass +class ActiveQuality: + """ Represents the active intent+profile combination, contains all information needed to display active quality. """ + intent_category: str = "" # Name of the base intent. For example "visual" or "engineering". + intent_name: str = "" # Name of the base intent formatted for display. For Example "Visual" or "Engineering" + profile: str = "" # Name of the base profile. For example "Fine" or "Fast" + custom_profile: str = "" # Name of the custom profile, this is based on profile. For example "MyCoolCustomProfile" + layer_height: float = None # Layer height of quality in mm. For example 0.4 + is_experimental: bool = False # If the quality experimental. + + def getStringParts(self) -> List[str]: + string_parts = [] + + if self.custom_profile is not None: + string_parts.append(self.custom_profile) + + if self.intent_category is not "default": + string_parts.append(f"{self.intent_name} - {self.profile}") + else: + string_parts.append(self.profile) + + if self.layer_height: + string_parts.append(f"{self.layer_height}mm") + + if self.is_experimental: + string_parts.append(catalog.i18nc("@label", "Experimental")) + + return string_parts + diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index fabfc27db8..350cac906a 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -40,6 +40,7 @@ from cura.Settings.cura_empty_instance_containers import (empty_definition_chang empty_material_container, empty_quality_container, empty_quality_changes_container, empty_intent_container) from cura.UltimakerCloud.UltimakerCloudConstants import META_UM_LINKED_TO_ACCOUNT +from .ActiveQuality import ActiveQuality from .CuraStackBuilder import CuraStackBuilder @@ -1633,47 +1634,20 @@ class MachineManager(QObject): # - "my_profile - Engineering - Fine" (based on an intent) @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) def activeQualityDisplayNameStringParts(self) -> List[str]: - result_map = self.activeQualityDisplayNameMap - string_parts = [] - - if result_map["custom_profile"] is not None: - string_parts.append(result_map["custom_profile"]) - - if result_map["intent_category"] is not "default": - string_parts.append(f"""{result_map["intent_name"]} - {result_map["profile"]}""") - else: - string_parts.append(result_map["profile"]) - - if result_map["layer_height"]: - string_parts.append(f"""{result_map["layer_height"]}mm""") - - if result_map["is_experimental"]: - string_parts.append(catalog.i18nc("@label", "Experimental")) - - return string_parts + return self.activeQualityDisplayNameMap.getStringParts() @pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged) - def activeQualityDisplayNameMap(self) -> Dict[str, Any]: + def activeQualityDisplayNameMap(self) -> ActiveQuality: global_stack = self._application.getGlobalContainerStack() if global_stack is None: - return { - "profile": "", - "intent_category": "", - "intent": "", - "custom_profile": None, - "is_experimental": False - } + return ActiveQuality() - return { - "profile": global_stack.quality.getName(), - "intent_category": self.activeIntentCategory, - "intent_name": IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()), - "custom_profile": self.activeQualityOrQualityChangesName \ - if global_stack.qualityChanges is not empty_quality_changes_container \ - else None, - "layer_height": self.activeQualityLayerHeight if self.isActiveQualitySupported else None, - "is_experimental": self.isActiveQualityExperimental and self.isActiveQualitySupported, - } + return ActiveQuality(profile = global_stack.quality.getName(), + intent_category = self.activeIntentCategory, + intent_name = IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()), + custom_profile = self.activeQualityOrQualityChangesName if global_stack.qualityChanges is not empty_quality_changes_container else None, + layer_height = self.activeQualityLayerHeight if self.isActiveQualitySupported else None, + is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported) @pyqtSlot(str) def setIntentByCategory(self, intent_category: str) -> None: diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index 3693352c1d..6594557584 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -1,6 +1,7 @@ # Copyright (c) 2022 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. import json +from dataclasses import asdict from typing import cast, List, Dict from Charon.VirtualFile import VirtualFile # To open UFP files. @@ -227,7 +228,7 @@ class UFPWriter(MeshWriter): }, "intent": machine_manager.activeIntentCategory, "quality": machine_manager.activeQualityOrQualityChangesName, - "quality_display_name": machine_manager.activeQualityDisplayNameMap, + "quality_display_name": asdict(machine_manager.activeQualityDisplayNameMap), } global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) From 5ed572779dd1509262fe4f3e4b68217d4053d07e Mon Sep 17 00:00:00 2001 From: Joey de l'Arago Date: Mon, 28 Nov 2022 12:44:20 +0100 Subject: [PATCH 168/185] remove redundant properties in settings CURA-9773 --- plugins/UFPWriter/UFPWriter.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index 6594557584..b9bcc94bf8 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -226,9 +226,7 @@ class UFPWriter(MeshWriter): "changes": {}, "all_settings": {}, }, - "intent": machine_manager.activeIntentCategory, - "quality": machine_manager.activeQualityOrQualityChangesName, - "quality_display_name": asdict(machine_manager.activeQualityDisplayNameMap), + "quality": asdict(machine_manager.activeQualityDisplayNameMap), } global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) From 8e8437eab050ff4ce1fc663159f15869203722a3 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 28 Nov 2022 13:10:52 +0100 Subject: [PATCH 169/185] Split of `getStringParts` function Spit into `getMainStringParts` and `getTailStringParts` so we can easily differentiate between the two in the front-end. Cura-9773 --- cura/Settings/ActiveQuality.py | 19 +++++++++++++++---- cura/Settings/MachineManager.py | 14 ++++++++++++-- .../Custom/CustomPrintSetup.qml | 15 +++++++++++++-- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/cura/Settings/ActiveQuality.py b/cura/Settings/ActiveQuality.py index 48af2c5d1a..420d1f24fc 100644 --- a/cura/Settings/ActiveQuality.py +++ b/cura/Settings/ActiveQuality.py @@ -16,16 +16,25 @@ class ActiveQuality: layer_height: float = None # Layer height of quality in mm. For example 0.4 is_experimental: bool = False # If the quality experimental. - def getStringParts(self) -> List[str]: + def getMainStringParts(self) -> List[str]: string_parts = [] if self.custom_profile is not None: string_parts.append(self.custom_profile) - - if self.intent_category is not "default": - string_parts.append(f"{self.intent_name} - {self.profile}") else: string_parts.append(self.profile) + if self.intent_category is not "default": + string_parts.append(self.intent_name) + + return string_parts + + def getTailStringParts(self) -> List[str]: + string_parts = [] + + if self.custom_profile is not None: + string_parts.append(self.profile) + if self.intent_category is not "default": + string_parts.append(self.intent_name) if self.layer_height: string_parts.append(f"{self.layer_height}mm") @@ -35,3 +44,5 @@ class ActiveQuality: return string_parts + def getStringParts(self) -> List[str]: + return self.getMainStringParts() + self.getTailStringParts() diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 350cac906a..2ee0facab8 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1636,18 +1636,28 @@ class MachineManager(QObject): def activeQualityDisplayNameStringParts(self) -> List[str]: return self.activeQualityDisplayNameMap.getStringParts() + @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) + def activeQualityDisplayNameMainStringParts(self) -> List[str]: + return self.activeQualityDisplayNameMap.getMainStringParts() + + @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) + def activeQualityDisplayNameTailStringParts(self) -> List[str]: + return self.activeQualityDisplayNameMap.getTailStringParts() + @pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged) def activeQualityDisplayNameMap(self) -> ActiveQuality: global_stack = self._application.getGlobalContainerStack() if global_stack is None: return ActiveQuality() - return ActiveQuality(profile = global_stack.quality.getName(), + return ActiveQuality( + profile = global_stack.quality.getName(), intent_category = self.activeIntentCategory, intent_name = IntentCategoryModel.translation(self.activeIntentCategory, "name", self.activeIntentCategory.title()), custom_profile = self.activeQualityOrQualityChangesName if global_stack.qualityChanges is not empty_quality_changes_container else None, layer_height = self.activeQualityLayerHeight if self.isActiveQualitySupported else None, - is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported) + is_experimental = self.isActiveQualityExperimental and self.isActiveQualitySupported + ) @pyqtSlot(str) def setIntentByCategory(self, intent_category: str) -> None: diff --git a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml index 0870e14d44..e64f211cd1 100644 --- a/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml +++ b/resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml @@ -67,7 +67,7 @@ Item UM.Label { id: textLabel - text: Cura.MachineManager.activeQualityDisplayNameStringParts[0] + text: Cura.MachineManager.activeQualityDisplayNameMainStringParts.join(" - ") Layout.margins: 0 Layout.maximumWidth: Math.floor(parent.width * 0.7) // Always leave >= 30% for the rest of the row. height: contentHeight @@ -77,7 +77,18 @@ Item UM.Label { - text: ` - ${Cura.MachineManager.activeQualityDisplayNameStringParts.slice(1).join(" - ")}` + text: + { + const string_parts = Cura.MachineManager.activeQualityDisplayNameTailStringParts; + if (string_parts.length === 0) + { + return ""; + } + else + { + ` - ${string_parts.join(" - ")}` + } + } color: UM.Theme.getColor("text_detail") Layout.margins: 0 From be409200425bcca50f21cbc397b4f58d043c039e Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Mon, 28 Nov 2022 13:14:47 +0100 Subject: [PATCH 170/185] Fix cura crashing `activeQualityDisplayNameMap` no longer returned a dict and could thus not be a pyqt property Cura-9773 --- cura/Settings/MachineManager.py | 7 +++---- plugins/UFPWriter/UFPWriter.py | 2 +- .../qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 2ee0facab8..b8a5e7d885 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1634,17 +1634,16 @@ class MachineManager(QObject): # - "my_profile - Engineering - Fine" (based on an intent) @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) def activeQualityDisplayNameStringParts(self) -> List[str]: - return self.activeQualityDisplayNameMap.getStringParts() + return self.activeQualityDisplayNameMap().getStringParts() @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) def activeQualityDisplayNameMainStringParts(self) -> List[str]: - return self.activeQualityDisplayNameMap.getMainStringParts() + return self.activeQualityDisplayNameMap().getMainStringParts() @pyqtProperty("QList", notify = activeQualityDisplayNameChanged) def activeQualityDisplayNameTailStringParts(self) -> List[str]: - return self.activeQualityDisplayNameMap.getTailStringParts() + return self.activeQualityDisplayNameMap().getTailStringParts() - @pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged) def activeQualityDisplayNameMap(self) -> ActiveQuality: global_stack = self._application.getGlobalContainerStack() if global_stack is None: diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index b9bcc94bf8..f90ef823e7 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -226,7 +226,7 @@ class UFPWriter(MeshWriter): "changes": {}, "all_settings": {}, }, - "quality": asdict(machine_manager.activeQualityDisplayNameMap), + "quality": asdict(machine_manager.activeQualityDisplayNameMap()), } global_stack = cast(GlobalStack, Application.getInstance().getGlobalContainerStack()) diff --git a/resources/qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml b/resources/qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml index 0b39d84177..0fecb6b662 100644 --- a/resources/qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml +++ b/resources/qml/Dialogs/DiscardOrKeepProfileChangesDialog.qml @@ -56,7 +56,7 @@ UM.Dialog UM.Label { id: infoText - text: catalog.i18nc("@text:window, %1 is a profile name", "You have customized some profile settings. Would you like to Keep these changed settings after switching profiles? Alternatively, you can discard the changes to load the defaults from '%1'.").arg(Cura.MachineManager.activeQualityDisplayNameMap["main"]) + text: catalog.i18nc("@text:window, %1 is a profile name", "You have customized some profile settings. Would you like to Keep these changed settings after switching profiles? Alternatively, you can discard the changes to load the defaults from '%1'.").arg(Cura.MachineManager.activeQualityDisplayNameMainStringParts.join(" - ")) anchors.left: parent.left anchors.right: parent.right wrapMode: Text.WordWrap @@ -83,7 +83,7 @@ UM.Dialog columnHeaders: [ catalog.i18nc("@title:column", "Profile settings"), - Cura.MachineManager.activeQualityDisplayNameMap["main"], + Cura.MachineManager.activeQualityDisplayNameMainStringParts.join(" - "), catalog.i18nc("@title:column", "Current changes") ] model: UM.TableModel From 73ee6d369eb511e591281c8b58c967360c9a3738 Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 13:26:52 +0100 Subject: [PATCH 171/185] Update disclaimer to mention UltiMaker Contributes to CURA-9808 --- resources/qml/WelcomePages/UserAgreementContent.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/WelcomePages/UserAgreementContent.qml b/resources/qml/WelcomePages/UserAgreementContent.qml index dcff613efb..68fb64e61e 100644 --- a/resources/qml/WelcomePages/UserAgreementContent.qml +++ b/resources/qml/WelcomePages/UserAgreementContent.qml @@ -36,10 +36,10 @@ Item right: parent.right } - text: "

    Disclaimer by Ultimaker

    " + text: "

    Disclaimer by UltiMaker

    " + "

    Please read this disclaimer carefully.

    " - + "

    Except when otherwise stated in writing, Ultimaker provides any Ultimaker software or third party software \"As is\" without warranty of any kind. The entire risk as to the quality and performance of Ultimaker software is with you.

    " - + "

    Unless required by applicable law or agreed to in writing, in no event will Ultimaker be liable to you for damages, including any general, special, incidental, or consequential damages arising out of the use or inability to use any Ultimaker software or third party software.

    " + + "

    Except when otherwise stated in writing, UltiMaker provides any UltiMaker software or third party software \"As is\" without warranty of any kind. The entire risk as to the quality and performance of UltiMaker software is with you.

    " + + "

    Unless required by applicable law or agreed to in writing, in no event will UltiMaker be liable to you for damages, including any general, special, incidental, or consequential damages arising out of the use or inability to use any UltiMaker software or third party software.

    " textFormat: Text.RichText wrapMode: Text.WordWrap font: UM.Theme.getFont("medium") From 68f6a0d146abc0ba44eb556c0376f617c264947c Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 13:31:35 +0100 Subject: [PATCH 172/185] Update mentions to UltiMaker Contributes to CURA-9808 --- resources/qml/WelcomePages/CloudContent.qml | 2 +- resources/qml/WelcomePages/DataCollectionsContent.qml | 2 +- resources/qml/WelcomePages/UserAgreementContent.qml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/qml/WelcomePages/CloudContent.qml b/resources/qml/WelcomePages/CloudContent.qml index ee0c9ae43b..54e95462e0 100644 --- a/resources/qml/WelcomePages/CloudContent.qml +++ b/resources/qml/WelcomePages/CloudContent.qml @@ -198,7 +198,7 @@ Item anchors.rightMargin: UM.Theme.getSize("default_margin").width anchors.bottom: parent.bottom - text: catalog.i18nc("@text", "Create a free Ultimaker Account") + text: catalog.i18nc("@text", "Create a free UltiMaker Account") onClicked: Qt.openUrlExternally("https://ultimaker.com/app/ultimaker-cura-account-sign-up?utm_source=cura&utm_medium=software&utm_campaign=onboarding-signup") } diff --git a/resources/qml/WelcomePages/DataCollectionsContent.qml b/resources/qml/WelcomePages/DataCollectionsContent.qml index 7fb457e40d..603074adae 100644 --- a/resources/qml/WelcomePages/DataCollectionsContent.qml +++ b/resources/qml/WelcomePages/DataCollectionsContent.qml @@ -96,7 +96,7 @@ Item horizontalAlignment: Text.AlignHCenter text: { - var t = catalog.i18nc("@text", "Data collected by Ultimaker Cura will not contain any personal information.") + var t = catalog.i18nc("@text", "Data collected by UltiMaker Cura will not contain any personal information.") var t2 = catalog.i18nc("@text", "More information") t += " " + t2 + "" return t diff --git a/resources/qml/WelcomePages/UserAgreementContent.qml b/resources/qml/WelcomePages/UserAgreementContent.qml index 68fb64e61e..4a98a98e57 100644 --- a/resources/qml/WelcomePages/UserAgreementContent.qml +++ b/resources/qml/WelcomePages/UserAgreementContent.qml @@ -1,4 +1,4 @@ -// Copyright (c) 2019 Ultimaker B.V. +// Copyright (c) 2022 UltiMaker // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.10 From f76f7117902bba24c4681904d0b6d4e941255ace Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 14:11:21 +0100 Subject: [PATCH 173/185] Update mentions to UltiMaker Contributes to CURA-9808 --- cura/OAuth2/AuthorizationService.py | 2 +- plugins/Marketplace/PackageModel.py | 2 +- plugins/UFPReader/UFPReader.py | 2 +- plugins/UFPWriter/UFPWriter.py | 2 +- .../resources/qml/MonitorPrinterCard.qml | 2 +- resources/bundled_packages/cura.json | 2 +- resources/i18n/cs_CZ/cura.po | 4 +- resources/i18n/cura.pot | 40 ++++++++-------- resources/i18n/de_DE/cura.po | 48 +++++++++---------- resources/i18n/es_ES/cura.po | 28 +++++------ resources/i18n/fi_FI/cura.po | 2 +- resources/i18n/fr_FR/cura.po | 26 +++++----- resources/i18n/hu_HU/cura.po | 2 +- resources/i18n/it_IT/cura.po | 34 ++++++------- resources/i18n/ja_JP/cura.po | 34 ++++++------- resources/i18n/ko_KR/cura.po | 44 ++++++++--------- resources/i18n/nl_NL/cura.po | 28 +++++------ resources/i18n/pl_PL/cura.po | 2 +- resources/i18n/pt_BR/cura.po | 4 +- resources/i18n/pt_PT/cura.po | 6 +-- resources/i18n/ru_RU/cura.po | 6 +-- resources/i18n/tr_TR/cura.po | 6 +-- resources/i18n/zh_CN/cura.po | 4 +- resources/i18n/zh_TW/cura.po | 4 +- resources/qml/Account/UserOperations.qml | 2 +- .../ApplicationSwitcherPopup.qml | 18 +++---- resources/qml/Preferences/GeneralPage.qml | 2 +- .../qml/PrinterSelector/MachineSelector.qml | 2 +- .../AddUltimakerOrThirdPartyPrinter.qml | 2 +- 29 files changed, 180 insertions(+), 180 deletions(-) diff --git a/cura/OAuth2/AuthorizationService.py b/cura/OAuth2/AuthorizationService.py index f2e6cd27ec..62bf31982a 100644 --- a/cura/OAuth2/AuthorizationService.py +++ b/cura/OAuth2/AuthorizationService.py @@ -274,7 +274,7 @@ class AuthorizationService: self._unable_to_get_data_message.show() else: self._unable_to_get_data_message = Message(i18n_catalog.i18nc("@info", - "Unable to reach the Ultimaker account server."), + "Unable to reach the UltiMaker account server."), title = i18n_catalog.i18nc("@info:title", "Log-in failed"), message_type = Message.MessageType.ERROR) Logger.warning("Unable to get user profile using auth data from preferences.") diff --git a/plugins/Marketplace/PackageModel.py b/plugins/Marketplace/PackageModel.py index 078bfc879e..79820f07e9 100644 --- a/plugins/Marketplace/PackageModel.py +++ b/plugins/Marketplace/PackageModel.py @@ -92,7 +92,7 @@ class PackageModel(QObject): "display_name": display_name, "package_version": package_version, "package_type": package_type, - "description": "The material package associated with the Cura project could not be found on the Ultimaker marketplace. Use the partial material profile definition stored in the Cura project file at your own risk." + "description": "The material package associated with the Cura project could not be found on the UltiMaker Marketplace. Use the partial material profile definition stored in the Cura project file at your own risk." } package_model = cls(package_data) package_model.setIsMissingPackageInformation(True) diff --git a/plugins/UFPReader/UFPReader.py b/plugins/UFPReader/UFPReader.py index 71061f938b..8596de9bf0 100644 --- a/plugins/UFPReader/UFPReader.py +++ b/plugins/UFPReader/UFPReader.py @@ -21,7 +21,7 @@ class UFPReader(MeshReader): MimeTypeDatabase.addMimeType( MimeType( name = "application/x-ufp", - comment = "Ultimaker Format Package", + comment = "UltiMaker Format Package", suffixes = ["ufp"] ) ) diff --git a/plugins/UFPWriter/UFPWriter.py b/plugins/UFPWriter/UFPWriter.py index d7671d02c8..f20236c403 100644 --- a/plugins/UFPWriter/UFPWriter.py +++ b/plugins/UFPWriter/UFPWriter.py @@ -40,7 +40,7 @@ class UFPWriter(MeshWriter): MimeTypeDatabase.addMimeType( MimeType( name = "application/x-ufp", - comment = "Ultimaker Format Package", + comment = "UltiMaker Format Package", suffixes = ["ufp"] ) ) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 2488e55bd1..68129eec8f 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -285,7 +285,7 @@ Item { id: cameraDisabledInfo text: catalog.i18nc("@info", "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." + - " Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam.") + " Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam.") target: cameraButton } } diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index cdcd88f709..9c7702e9ad 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -122,7 +122,7 @@ "package_info": { "package_id": "DigitalLibrary", "package_type": "plugin", - "display_name": "Ultimaker Digital Library", + "display_name": "UltiMaker Digital Library", "description": "Connects to the Digital Library, allowing Cura to open files from and save files to the Digital Library.", "package_version": "1.1.0", "sdk_version": "8.2.0", diff --git a/resources/i18n/cs_CZ/cura.po b/resources/i18n/cs_CZ/cura.po index 91464154cc..e2d0ff0ffe 100644 --- a/resources/i18n/cs_CZ/cura.po +++ b/resources/i18n/cs_CZ/cura.po @@ -2348,8 +2348,8 @@ msgstr "Aktualizujte firmware tiskárny a spravujte frontu vzdáleně." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "Vstup z webové kamery nemůže být pro cloudové tiskárny zobrazen v UltiMaker Cura. Klikněte na \"Spravovat tiskárnu\", abyste navštívili Ultimaker Digital Factory a zobrazili tuto webkameru." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Vstup z webové kamery nemůže být pro cloudové tiskárny zobrazen v UltiMaker Cura. Klikněte na \"Spravovat tiskárnu\", abyste navštívili UltiMaker Digital Factory a zobrazili tuto webkameru." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 514b2b21cd..3acce5bf81 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -718,7 +718,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 msgctxt "@label crash message" msgid "" -"

    Oops, Ultimaker Cura has encountered something that doesn't seem right." +"

    Oops, UltiMaker Cura has encountered something that doesn't seem right." "

    \n" "

    We encountered an unrecoverable error during start " "up. It was possibly caused by some incorrect configuration files. We suggest " @@ -933,7 +933,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" msgid "New printer detected from your UltiMaker account" -msgid_plural "New printers detected from your Ultimaker account" +msgid_plural "New printers detected from your UltiMaker account" msgstr[0] "" msgstr[1] "" @@ -1087,7 +1087,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" msgid "" -"You are attempting to connect to a printer that is not running Ultimaker " +"You are attempting to connect to a printer that is not running UltiMaker " "Connect. Please update the printer to the latest firmware." msgstr "" @@ -1750,7 +1750,7 @@ msgstr "" msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " -"unknown to this version of Ultimaker Cura." +"unknown to this version of UltiMaker Cura." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2418,8 +2418,8 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2799,7 +2799,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" msgid "" -"Ultimaker Cura collects anonymous data in order to improve the print quality " +"UltiMaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" msgstr "" @@ -2928,7 +2928,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" -"Streamline your workflow and customize your Ultimaker Cura experience with " +"Streamline your workflow and customize your UltiMaker Cura experience with " "plugins contributed by our amazing community of users." msgstr "" @@ -2991,7 +2991,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" msgid "" -"Select and install material profiles optimised for your Ultimaker 3D " +"Select and install material profiles optimised for your UltiMaker 3D " "printers." msgstr "" @@ -3135,7 +3135,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" msgid "" -"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " +"Manage your UltiMaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." msgstr "" @@ -4455,7 +4455,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" msgid "" -"Should anonymous data about your print be sent to Ultimaker? Note, no " +"Should anonymous data about your print be sent to UltiMaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." msgstr "" @@ -4811,7 +4811,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" -"Ultimaker Cura collects anonymous data to improve print quality and user " +"UltiMaker Cura collects anonymous data to improve print quality and user " "experience, including:" msgstr "" @@ -4838,7 +4838,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" msgid "" -"Data collected by Ultimaker Cura will not contain any personal information." +"Data collected by UltiMaker Cura will not contain any personal information." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 @@ -4937,7 +4937,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" -"Please follow these steps to set up Ultimaker Cura. This will only take a " +"Please follow these steps to set up UltiMaker Cura. This will only take a " "few moments." msgstr "" @@ -5033,7 +5033,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216 msgctxt "" -"@action:inmenu Marketplace is a brand name of Ultimaker's, so don't " +"@action:inmenu Marketplace is a brand name of UltiMaker's, so don't " "translate." msgid "Add more materials from Marketplace" msgstr "" @@ -5635,7 +5635,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" @@ -6191,7 +6191,7 @@ msgctxt "@text" msgid "" "- Add material profiles and plug-ins from the Marketplace\n" "- Back-up and sync your material profiles and plug-ins\n" -"- Share ideas and get help from 48,000+ users in the Ultimaker community" +"- Share ideas and get help from 48,000+ users in the UltiMaker community" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 @@ -6254,7 +6254,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" msgid "" -"This printer is not linked to your account. Please visit the Ultimaker " +"This printer is not linked to your account. Please visit the UltiMaker " "Digital Factory to establish a connection." msgstr "" @@ -6529,7 +6529,7 @@ msgstr "" #: /UltimakerMachineActions/plugin.json msgctxt "description" msgid "" -"Provides machine actions for Ultimaker machines (such as bed leveling " +"Provides machine actions for UltiMaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." msgstr "" @@ -6552,7 +6552,7 @@ msgstr "" msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " -"the Ultimaker website." +"the UltiMaker website." msgstr "" #: /Marketplace/plugin.json diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index 6b37013b1b..6b4bfd2bcb 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -721,7 +721,7 @@ msgstr "Cura kann nicht starten" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 msgctxt "@label crash message" msgid "" -"

    Oops, Ultimaker Cura has encountered something that doesn't seem right." +"

    Oops, UltiMaker Cura has encountered something that doesn't seem right." "

    \n" "

    We encountered an unrecoverable error during start " "up. It was possibly caused by some incorrect configuration files. We suggest " @@ -940,9 +940,9 @@ msgstr "Netzwerkfehler" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" msgid "New printer detected from your UltiMaker account" -msgid_plural "New printers detected from your Ultimaker account" -msgstr[0] "Ihr Ultimaker-Konto hat einen neuen Drucker erkannt" -msgstr[1] "Ihr Ultimaker-Konto hat neue Drucker erkannt" +msgid_plural "New printers detected from your UltiMaker account" +msgstr[0] "Ihr UltiMaker-Konto hat einen neuen Drucker erkannt" +msgstr[1] "Ihr UltiMaker-Konto hat neue Drucker erkannt" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29 #, python-brace-format @@ -1096,7 +1096,7 @@ msgstr "Drucker entfernen" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" msgid "" -"You are attempting to connect to a printer that is not running Ultimaker " +"You are attempting to connect to a printer that is not running UltiMaker " "Connect. Please update the printer to the latest firmware." msgstr "Sie versuchen, sich mit einem Drucker zu verbinden, auf dem UltiMaker Connect nicht läuft. Bitte aktualisieren Sie die Firmware des Druckers." @@ -1763,7 +1763,7 @@ msgstr "Projektdatei {0} ist beschädigt: {1}!" msgid "" "Project file {0} is made using profiles that are " -"unknown to this version of Ultimaker Cura." +"unknown to this version of UltiMaker Cura." msgstr "Projektdatei {0} verwendet Profile, die nicht mit dieser UltiMaker Cura-Version kompatibel sind." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2436,9 +2436,9 @@ msgstr "Damit Sie die Warteschlange aus der Ferne verwalten können, müssen Sie #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Webcam-Feeds für Cloud-Drucker können nicht in UltiMaker Cura angezeigt werden. Klicken Sie auf „Drucker verwalten“, um die Ultimaker Digital Factory zu" +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Webcam-Feeds für Cloud-Drucker können nicht in UltiMaker Cura angezeigt werden. Klicken Sie auf „Drucker verwalten“, um die UltiMaker Digital Factory zu" " besuchen und diese Webcam zu sehen." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2819,7 +2819,7 @@ msgstr "Weitere Informationen zur anonymen Datenerfassung" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" msgid "" -"Ultimaker Cura collects anonymous data in order to improve the print quality " +"UltiMaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" msgstr "UltiMaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Nachfolgend ist ein Beispiel aller Daten, die geteilt werden:" @@ -2950,7 +2950,7 @@ msgstr "Plug-ins installieren" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" -"Streamline your workflow and customize your Ultimaker Cura experience with " +"Streamline your workflow and customize your UltiMaker Cura experience with " "plugins contributed by our amazing community of users." msgstr "Optimieren Sie Ihren Workflow und individualisieren Sie Ihr Erlebnis in UltiMaker Cura mit Plug-ins, die von der großartigen Community unserer Anwender" " bereitgestellt werden." @@ -3014,7 +3014,7 @@ msgstr "Materialien installieren" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" msgid "" -"Select and install material profiles optimised for your Ultimaker 3D " +"Select and install material profiles optimised for your UltiMaker 3D " "printers." msgstr "Wählen und installieren Sie Materialprofile, die für Ihre UltiMaker 3D-Drucker optimiert sind." @@ -3158,7 +3158,7 @@ msgstr "Pakete verwalten" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" msgid "" -"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " +"Manage your UltiMaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." msgstr "Verwalten Sie hier Ihre UltiMaker Cura Plug-ins und Ihre Materialprofile. Halten Sie Ihre Plug-ins auf dem neuesten Stand und sichern Sie Ihr Setup regelmäßig." @@ -4484,7 +4484,7 @@ msgstr "Privatsphäre" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" msgid "" -"Should anonymous data about your print be sent to Ultimaker? Note, no " +"Should anonymous data about your print be sent to UltiMaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." msgstr "Sollen anonyme Daten über Ihren Druck an UltiMaker gesendet werden? Beachten Sie, dass keine Modelle, IP-Adressen oder andere personenbezogene Daten gesendet" @@ -4842,7 +4842,7 @@ msgstr "Helfen Sie uns, UltiMaker Cura zu verbessern" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" -"Ultimaker Cura collects anonymous data to improve print quality and user " +"UltiMaker Cura collects anonymous data to improve print quality and user " "experience, including:" msgstr "UltiMaker Cura erfasst anonyme Daten, um die Druckqualität und Benutzererfahrung zu steigern. Dazu gehören:" @@ -4869,7 +4869,7 @@ msgstr "Druckeinstellungen" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" msgid "" -"Data collected by Ultimaker Cura will not contain any personal information." +"Data collected by UltiMaker Cura will not contain any personal information." msgstr "Die von UltiMaker Cura erfassten Daten enthalten keine personenbezogenen Daten." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 @@ -4968,7 +4968,7 @@ msgstr "Willkommen bei UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" -"Please follow these steps to set up Ultimaker Cura. This will only take a " +"Please follow these steps to set up UltiMaker Cura. This will only take a " "few moments." msgstr "Befolgen Sie bitte diese Schritte für das Einrichten von\nUltiMaker Cura. Dies dauert nur wenige Sekunden." @@ -5064,7 +5064,7 @@ msgstr "Materialien werden verwaltet..." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216 msgctxt "" -"@action:inmenu Marketplace is a brand name of Ultimaker's, so don't " +"@action:inmenu Marketplace is a brand name of UltiMaker's, so don't " "translate." msgid "Add more materials from Marketplace" msgstr "Weiteres Material aus Marketplace hinzufügen" @@ -5668,7 +5668,7 @@ msgstr "Komplettlösung für den 3D-Druck mit geschmolzenem Filament." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "Cura wurde von UltiMaker B.V. in Zusammenarbeit mit der Community entwickelt.\nCura verwendet mit Stolz die folgenden Open Source-Projekte:" @@ -6229,9 +6229,9 @@ msgctxt "@text" msgid "" "- Add material profiles and plug-ins from the Marketplace\n" "- Back-up and sync your material profiles and plug-ins\n" -"- Share ideas and get help from 48,000+ users in the Ultimaker community" +"- Share ideas and get help from 48,000+ users in the UltiMaker community" msgstr "- Materialprofile und Plug-ins aus dem Marketplace hinzufügen\n- Materialprofile und Plug-ins sichern und synchronisieren\n- Ideenaustausch mit und Hilfe" -" von mehr als 48.000 Benutzern in der Ultimaker Community" +" von mehr als 48.000 Benutzern in der UltiMaker Community" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 msgctxt "@button" @@ -6293,7 +6293,7 @@ msgstr "Der Cloud-Drucker ist offline. Bitte prüfen Sie, ob der Drucker eingesc #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" msgid "" -"This printer is not linked to your account. Please visit the Ultimaker " +"This printer is not linked to your account. Please visit the UltiMaker " "Digital Factory to establish a connection." msgstr "Der Drucker ist nicht mit Ihrem Konto verbunden. Bitte besuchen Sie die UltiMaker Digital Factory, um eine Verbindung herzustellen." @@ -6568,7 +6568,7 @@ msgstr "Trimesh Reader" #: /UltimakerMachineActions/plugin.json msgctxt "description" msgid "" -"Provides machine actions for Ultimaker machines (such as bed leveling " +"Provides machine actions for UltiMaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." msgstr "Ermöglicht Maschinenabläufe für UltiMaker-Maschinen (z. B. Assistent für Bettnivellierung, Auswahl von Upgrades usw.)" @@ -6591,7 +6591,7 @@ msgstr "Reader für komprimierten G-Code" msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " -"the Ultimaker website." +"the UltiMaker website." msgstr "Verwaltet die Erweiterungen der Anwendung und ermöglicht das Durchsuchen von Erweiterungen auf der UltiMaker-Website." #: /Marketplace/plugin.json diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index a4d3f04281..82c8421df7 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -722,7 +722,7 @@ msgstr "Cura no puede iniciarse" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 msgctxt "@label crash message" msgid "" -"

    Oops, Ultimaker Cura has encountered something that doesn't seem right." +"

    Oops, UltiMaker Cura has encountered something that doesn't seem right." "

    \n" "

    We encountered an unrecoverable error during start " "up. It was possibly caused by some incorrect configuration files. We suggest " @@ -941,9 +941,9 @@ msgstr "Error de red" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" msgid "New printer detected from your UltiMaker account" -msgid_plural "New printers detected from your Ultimaker account" -msgstr[0] "Se ha detectado una nueva impresora en su cuenta de Ultimaker" -msgstr[1] "Se han detectado nuevas impresoras en su cuenta de Ultimaker" +msgid_plural "New printers detected from your UltiMaker account" +msgstr[0] "Se ha detectado una nueva impresora en su cuenta de UltiMaker" +msgstr[1] "Se han detectado nuevas impresoras en su cuenta de UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29 #, python-brace-format @@ -1096,7 +1096,7 @@ msgstr "Eliminar impresoras" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" msgid "" -"You are attempting to connect to a printer that is not running Ultimaker " +"You are attempting to connect to a printer that is not running UltiMaker " "Connect. Please update the printer to the latest firmware." msgstr "Está intentando conectarse a una impresora que no está ejecutando UltiMaker Connect. Actualice la impresora al firmware más reciente." @@ -1763,7 +1763,7 @@ msgstr "El archivo de proyecto {0} está dañado: msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " -"unknown to this version of Ultimaker Cura." +"unknown to this version of UltiMaker Cura." msgstr "El archivo de proyecto {0} se ha creado con perfiles desconocidos para esta versión de UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2437,9 +2437,9 @@ msgstr "Actualice el firmware de la impresora para gestionar la cola de forma re #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Las transmisiones de la cámara web para impresoras en la nube no se pueden ver en UltiMaker Cura. Haga clic en \"Administrar impresora\" para ir a Ultimaker" +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Las transmisiones de la cámara web para impresoras en la nube no se pueden ver en UltiMaker Cura. Haga clic en \"Administrar impresora\" para ir a UltiMaker" " Digital Factory y ver esta cámara web." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2820,7 +2820,7 @@ msgstr "Más información sobre la recopilación de datos anónimos" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" msgid "" -"Ultimaker Cura collects anonymous data in order to improve the print quality " +"UltiMaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" msgstr "UltiMaker Cura recopila datos anónimos para mejorar la calidad de impresión y la experiencia de usuario. A continuación, hay un ejemplo de todos los datos" " que se comparten:" @@ -2952,7 +2952,7 @@ msgstr "Instalar complementos" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" -"Streamline your workflow and customize your Ultimaker Cura experience with " +"Streamline your workflow and customize your UltiMaker Cura experience with " "plugins contributed by our amazing community of users." msgstr "Optimice su flujo de trabajo y personalice su experiencia de UltiMaker Cura con complementos proporcionados por nuestra increíble comunidad de usuarios." @@ -3015,7 +3015,7 @@ msgstr "Instalar materiales" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" msgid "" -"Select and install material profiles optimised for your Ultimaker 3D " +"Select and install material profiles optimised for your UltiMaker 3D " "printers." msgstr "Seleccione e instale perfiles de material optimizados para sus impresoras 3D UltiMaker." @@ -3159,7 +3159,7 @@ msgstr "Gestionar paquetes" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" msgid "" -"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " +"Manage your UltiMaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." msgstr "Gestionar los complementos y los perfiles de materiales de UltiMaker Cura aquí. Asegúrese de mantener los complementos actualizados y hacer una copia de" " seguridad de su configuración regularmente." @@ -4485,7 +4485,7 @@ msgstr "Privacidad" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" msgid "" -"Should anonymous data about your print be sent to Ultimaker? Note, no " +"Should anonymous data about your print be sent to UltiMaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." msgstr "¿Deben enviarse datos anónimos sobre la impresión a UltiMaker? Tenga en cuenta que no se envían ni almacenan modelos, direcciones IP ni otra información" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index 27ca3cfd29..e97704b4d9 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -2315,7 +2315,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index ae8fd056b9..776f8b53a9 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -722,7 +722,7 @@ msgstr "Échec du démarrage de Cura" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 msgctxt "@label crash message" msgid "" -"

    Oops, Ultimaker Cura has encountered something that doesn't seem right." +"

    Oops, UltiMaker Cura has encountered something that doesn't seem right." "

    \n" "

    We encountered an unrecoverable error during start " "up. It was possibly caused by some incorrect configuration files. We suggest " @@ -941,9 +941,9 @@ msgstr "Erreur de réseau" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" msgid "New printer detected from your UltiMaker account" -msgid_plural "New printers detected from your Ultimaker account" -msgstr[0] "Nouvelle imprimante détectée à partir de votre compte Ultimaker" -msgstr[1] "Nouvelles imprimantes détectées à partir de votre compte Ultimaker" +msgid_plural "New printers detected from your UltiMaker account" +msgstr[0] "Nouvelle imprimante détectée à partir de votre compte UltiMaker" +msgstr[1] "Nouvelles imprimantes détectées à partir de votre compte UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29 #, python-brace-format @@ -1096,7 +1096,7 @@ msgstr "Supprimer des imprimantes" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" msgid "" -"You are attempting to connect to a printer that is not running Ultimaker " +"You are attempting to connect to a printer that is not running UltiMaker " "Connect. Please update the printer to the latest firmware." msgstr "Vous tentez de vous connecter à une imprimante qui n'exécute pas UltiMaker Connect. Veuillez mettre à jour l'imprimante avec le dernier micrologiciel." @@ -1767,7 +1767,7 @@ msgstr "Le fichier de projet {0} est corrompu: {1} msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " -"unknown to this version of Ultimaker Cura." +"unknown to this version of UltiMaker Cura." msgstr "Le fichier de projet {0} a été réalisé en utilisant des profils inconnus de cette version d'UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2446,10 +2446,10 @@ msgstr "Veuillez mettre à jour le Firmware de votre imprimante pour gérer la f #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "" -"Les flux de webcam des imprimantes cloud ne peuvent pas être visualisés depuis Ultimaker Cura. Cliquez sur « Gérer l'imprimante » pour visiter Ultimaker Digital Factory et voir cette webcam." +"Les flux de webcam des imprimantes cloud ne peuvent pas être visualisés depuis UltiMaker Cura. Cliquez sur « Gérer l'imprimante » pour visiter UltiMaker Digital Factory et voir cette webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2830,10 +2830,10 @@ msgstr "Plus d'informations sur la collecte de données anonymes" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" msgid "" -"Ultimaker Cura collects anonymous data in order to improve the print quality " +"UltiMaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" msgstr "" -"Ultimaker Cura recueille des données anonymes afin d'améliorer la qualité d'impression et l'expérience utilisateur. Voici un exemple de toutes les données partagées :" +"UltiMaker Cura recueille des données anonymes afin d'améliorer la qualité d'impression et l'expérience utilisateur. Voici un exemple de toutes les données partagées :" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:107 msgctxt "@text:window" @@ -2963,7 +2963,7 @@ msgstr "Installer les plugins" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" -"Streamline your workflow and customize your Ultimaker Cura experience with " +"Streamline your workflow and customize your UltiMaker Cura experience with " "plugins contributed by our amazing community of users." msgstr "Simplifiez votre flux de travail et personnalisez votre expérience UltiMaker Cura avec des plugins fournis par notre incroyable communauté d'utilisateurs." @@ -3026,7 +3026,7 @@ msgstr "Installer des matériaux" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" msgid "" -"Select and install material profiles optimised for your Ultimaker 3D " +"Select and install material profiles optimised for your UltiMaker 3D " "printers." msgstr "Sélectionnez et installez des profils de matériaux optimisés pour vos imprimantes 3D UltiMaker." diff --git a/resources/i18n/hu_HU/cura.po b/resources/i18n/hu_HU/cura.po index a94f8497e1..90252e1197 100644 --- a/resources/i18n/hu_HU/cura.po +++ b/resources/i18n/hu_HU/cura.po @@ -2327,7 +2327,7 @@ msgstr "A távoli nyomtatásisor kezeléshez kérjük frissítse a firmware-t." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index daafb0dde2..d9cfa0c79c 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -722,7 +722,7 @@ msgstr "Impossibile avviare Cura" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 msgctxt "@label crash message" msgid "" -"

    Oops, Ultimaker Cura has encountered something that doesn't seem right." +"

    Oops, UltiMaker Cura has encountered something that doesn't seem right." "

    \n" "

    We encountered an unrecoverable error during start " "up. It was possibly caused by some incorrect configuration files. We suggest " @@ -941,9 +941,9 @@ msgstr "Errore di rete" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" msgid "New printer detected from your UltiMaker account" -msgid_plural "New printers detected from your Ultimaker account" -msgstr[0] "Nuova stampante rilevata dall'account Ultimaker" -msgstr[1] "Nuove stampanti rilevate dall'account Ultimaker" +msgid_plural "New printers detected from your UltiMaker account" +msgstr[0] "Nuova stampante rilevata dall'account UltiMaker" +msgstr[1] "Nuove stampanti rilevate dall'account UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29 #, python-brace-format @@ -1096,7 +1096,7 @@ msgstr "Rimuovere le stampanti" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" msgid "" -"You are attempting to connect to a printer that is not running Ultimaker " +"You are attempting to connect to a printer that is not running UltiMaker " "Connect. Please update the printer to the latest firmware." msgstr "Si sta tentando di connettersi a una stampante che non esegue UltiMaker Connect. Aggiornare la stampante con il firmware più recente." @@ -1763,7 +1763,7 @@ msgstr "Il file di progetto {0} è danneggiato: {1 msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " -"unknown to this version of Ultimaker Cura." +"unknown to this version of UltiMaker Cura." msgstr "Il file di progetto {0} è realizzato con profili sconosciuti a questa versione di UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2438,9 +2438,9 @@ msgstr "Aggiornare il firmware della stampante per gestire la coda da remoto." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Impossibile visualizzare feed della Webcam per stampanti cloud da UltiMaker Cura. Fare clic su \"Gestione stampanti\" per visitare Ultimaker Digital Factory" +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Impossibile visualizzare feed della Webcam per stampanti cloud da UltiMaker Cura. Fare clic su \"Gestione stampanti\" per visitare UltiMaker Digital Factory" " e visualizzare questa Webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2822,7 +2822,7 @@ msgstr "Maggiori informazioni sulla raccolta di dati anonimi" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" msgid "" -"Ultimaker Cura collects anonymous data in order to improve the print quality " +"UltiMaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" msgstr "UltiMaker Cura acquisisce dati anonimi per migliorare la qualità di stampa e l'esperienza dell'utente. Di seguito è riportato un esempio dei dati condivisi:" @@ -2953,7 +2953,7 @@ msgstr "Installa plugin" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" -"Streamline your workflow and customize your Ultimaker Cura experience with " +"Streamline your workflow and customize your UltiMaker Cura experience with " "plugins contributed by our amazing community of users." msgstr "Semplifica il flusso di lavoro e personalizza l'esperienza UltiMaker Cura experience con plugin forniti dalla nostra eccezionale comunità di utenti." @@ -3016,7 +3016,7 @@ msgstr "Installa materiali" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" msgid "" -"Select and install material profiles optimised for your Ultimaker 3D " +"Select and install material profiles optimised for your UltiMaker 3D " "printers." msgstr "Selezionare e installare i profili dei materiali ottimizzati per le stampanti 3D UltiMaker." @@ -3160,7 +3160,7 @@ msgstr "Gestisci pacchetti" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" msgid "" -"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " +"Manage your UltiMaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." msgstr "Gestisci i plugin UltiMaker Cura e i profili del materiale qui. Accertarsi di mantenere i plugin aggiornati e di eseguire regolarmente il backup dell'impostazione." @@ -4484,7 +4484,7 @@ msgstr "Privacy" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" msgid "" -"Should anonymous data about your print be sent to Ultimaker? Note, no " +"Should anonymous data about your print be sent to UltiMaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." msgstr "I dati anonimi sulla stampa devono essere inviati a UltiMaker? Nota, non sono trasmessi o memorizzati modelli, indirizzi IP o altre informazioni personali." @@ -4840,7 +4840,7 @@ msgstr "Aiutaci a migliorare UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" -"Ultimaker Cura collects anonymous data to improve print quality and user " +"UltiMaker Cura collects anonymous data to improve print quality and user " "experience, including:" msgstr "UltiMaker Cura acquisisce dati anonimi per migliorare la qualità di stampa e l'esperienza dell'utente, tra cui:" @@ -4867,7 +4867,7 @@ msgstr "Impostazioni di stampa" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" msgid "" -"Data collected by Ultimaker Cura will not contain any personal information." +"Data collected by UltiMaker Cura will not contain any personal information." msgstr "I dati acquisiti da UltiMaker Cura non conterranno alcuna informazione personale." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 @@ -4966,7 +4966,7 @@ msgstr "Benvenuto in UltiMaker Cura" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" -"Please follow these steps to set up Ultimaker Cura. This will only take a " +"Please follow these steps to set up UltiMaker Cura. This will only take a " "few moments." msgstr "Segui questa procedura per configurare\nUltiMaker Cura. Questa operazione richiederà solo pochi istanti." diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po index 86e7bb2157..7a93c7f5a1 100644 --- a/resources/i18n/ja_JP/cura.po +++ b/resources/i18n/ja_JP/cura.po @@ -718,7 +718,7 @@ msgstr "Curaを開始できません" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 msgctxt "@label crash message" msgid "" -"

    Oops, Ultimaker Cura has encountered something that doesn't seem right." +"

    Oops, UltiMaker Cura has encountered something that doesn't seem right." "

    \n" "

    We encountered an unrecoverable error during start " "up. It was possibly caused by some incorrect configuration files. We suggest " @@ -934,8 +934,8 @@ msgstr "ネットワークエラー" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" msgid "New printer detected from your UltiMaker account" -msgid_plural "New printers detected from your Ultimaker account" -msgstr[0] "Ultimakerアカウントから新しいプリンターが検出されました" +msgid_plural "New printers detected from your UltiMaker account" +msgstr[0] "UltiMakerアカウントから新しいプリンターが検出されました" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29 #, python-brace-format @@ -1085,7 +1085,7 @@ msgstr "プリンターを取り除く" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" msgid "" -"You are attempting to connect to a printer that is not running Ultimaker " +"You are attempting to connect to a printer that is not running UltiMaker " "Connect. Please update the printer to the latest firmware." msgstr "UltiMaker Connectを実行していないプリンターに接続しようとしています。プリンターを最新のファームウェアに更新してください。" @@ -1747,7 +1747,7 @@ msgstr "プロジェクトファイル{0}は破損してい msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " -"unknown to this version of Ultimaker Cura." +"unknown to this version of UltiMaker Cura." msgstr "プロジェクトファイル{0}はこのバージョンのUltiMaker Curaでは認識できないプロファイルを使用して作成されています。" #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2413,9 +2413,9 @@ msgstr "キューをリモートで管理するには、プリンターのファ #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "クラウドプリンターのウェブカムフィードをUltiMaker Curaから見ることができません。「プリンター管理」をクリックして、Ultimaker Digital Factoryにアクセスし、このウェブカムを見ます。" +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "クラウドプリンターのウェブカムフィードをUltiMaker Curaから見ることができません。「プリンター管理」をクリックして、UltiMaker Digital Factoryにアクセスし、このウェブカムを見ます。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2794,7 +2794,7 @@ msgstr "匿名データの収集に関する詳細" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" msgid "" -"Ultimaker Cura collects anonymous data in order to improve the print quality " +"UltiMaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" msgstr "UltiMaker Cura は、印刷品質とユーザーエクスペリエンスを向上させるために匿名データを収集します。以下は、共有されるすべてのデータの例です:" @@ -2923,7 +2923,7 @@ msgstr "プラグインのインストール" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" -"Streamline your workflow and customize your Ultimaker Cura experience with " +"Streamline your workflow and customize your UltiMaker Cura experience with " "plugins contributed by our amazing community of users." msgstr "素晴らしいユーザーコミュニティから提供されるプラグインを活用して、ワークフローを合理化し、UltiMaker Cura体験をカスタマイズすることができます。" @@ -2986,7 +2986,7 @@ msgstr "材料のインストール" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" msgid "" -"Select and install material profiles optimised for your Ultimaker 3D " +"Select and install material profiles optimised for your UltiMaker 3D " "printers." msgstr "UltiMaker 3Dプリンターに最適な材料プロファイルを選択してインストールします。" @@ -3130,7 +3130,7 @@ msgstr "パッケージの管理" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" msgid "" -"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " +"Manage your UltiMaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." msgstr "UltiMaker Curaのプラグインと材料プロファイルはここで管理します。プラグインを常に最新の状態に保ち、セットアップのバックアップを定期的に取るようにしてください。" @@ -4447,7 +4447,7 @@ msgstr "プライバシー" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" msgid "" -"Should anonymous data about your print be sent to Ultimaker? Note, no " +"Should anonymous data about your print be sent to UltiMaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." msgstr "プリンターの不明なデータをUltiMakerにおくりますか?メモ、モデル、IPアドレス、個人的な情報は送信されたり保存されたりはしません。" @@ -4802,7 +4802,7 @@ msgstr "UltiMaker Cura の改善にご協力ください" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" -"Ultimaker Cura collects anonymous data to improve print quality and user " +"UltiMaker Cura collects anonymous data to improve print quality and user " "experience, including:" msgstr "UltiMaker Cura は、印刷品質とユーザーエクスペリエンスを向上させるために以下の匿名データを収集します:" @@ -4829,7 +4829,7 @@ msgstr "プリント設定" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" msgid "" -"Data collected by Ultimaker Cura will not contain any personal information." +"Data collected by UltiMaker Cura will not contain any personal information." msgstr "UltiMaker Cura が収集したデータには個人データは含まれません。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 @@ -4928,7 +4928,7 @@ msgstr "UltiMaker Cura にようこそ" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" -"Please follow these steps to set up Ultimaker Cura. This will only take a " +"Please follow these steps to set up UltiMaker Cura. This will only take a " "few moments." msgstr "以下の手順で\nUltiMaker Cura を設定してください。数秒で完了します。" @@ -5024,7 +5024,7 @@ msgstr "フィラメントを管理する..." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216 msgctxt "" -"@action:inmenu Marketplace is a brand name of Ultimaker's, so don't " +"@action:inmenu Marketplace is a brand name of UltiMaker's, so don't " "translate." msgid "Add more materials from Marketplace" msgstr "マーケットプレイスから材料を追加" diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po index d8af39c3cb..d51c4ebd6a 100644 --- a/resources/i18n/ko_KR/cura.po +++ b/resources/i18n/ko_KR/cura.po @@ -718,7 +718,7 @@ msgstr "큐라를 시작할 수 없습니다" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 msgctxt "@label crash message" msgid "" -"

    Oops, Ultimaker Cura has encountered something that doesn't seem right." +"

    Oops, UltiMaker Cura has encountered something that doesn't seem right." "

    \n" "

    We encountered an unrecoverable error during start " "up. It was possibly caused by some incorrect configuration files. We suggest " @@ -935,8 +935,8 @@ msgstr "네트워크 오류" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" msgid "New printer detected from your UltiMaker account" -msgid_plural "New printers detected from your Ultimaker account" -msgstr[0] "Ultimaker 계정에서 새 프린터가 감지되었습니다" +msgid_plural "New printers detected from your UltiMaker account" +msgstr[0] "UltiMaker 계정에서 새 프린터가 감지되었습니다" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29 #, python-brace-format @@ -1086,7 +1086,7 @@ msgstr "프린터 제거" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" msgid "" -"You are attempting to connect to a printer that is not running Ultimaker " +"You are attempting to connect to a printer that is not running UltiMaker " "Connect. Please update the printer to the latest firmware." msgstr "UltiMaker Connect를 실행하지 않는 프린터에 연결하려 합니다. 프린터를 최신 펌웨어로 업데이트해 주십시오." @@ -1748,7 +1748,7 @@ msgstr "프로젝트 파일 {0}이 손상됨: {1}< msgctxt "@info:error Don't translate the XML tag !" msgid "" "Project file {0} is made using profiles that are " -"unknown to this version of Ultimaker Cura." +"unknown to this version of UltiMaker Cura." msgstr "프로젝트 파일 {0}이(가) 이 버전의 UltiMaker Cura에서 확인할 수 없는 프로파일을 사용하였습니다." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2415,9 +2415,9 @@ msgstr "대기열을 원격으로 관리하려면 프린터 펌웨어를 업데 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "클라우드 프린터용 Webcam 피드는 UltiMaker Cura에서 볼 수 없습니다. '프린터 관리'를 클릭하여 Ultimaker Digital Factory를 방문하고 이 웹캠을 확인하십시오." +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "클라우드 프린터용 Webcam 피드는 UltiMaker Cura에서 볼 수 없습니다. '프린터 관리'를 클릭하여 UltiMaker Digital Factory를 방문하고 이 웹캠을 확인하십시오." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2796,7 +2796,7 @@ msgstr "익명 데이터 수집에 대한 추가 정보" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" msgid "" -"Ultimaker Cura collects anonymous data in order to improve the print quality " +"UltiMaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" msgstr "UltiMaker Cura는 인쇄 품질과 사용자 경험을 개선하기 위해 익명 데이터를 수집합니다. 공유되는 모든 데이터의 예는 다음과 같습니다:" @@ -2925,7 +2925,7 @@ msgstr "플러그인 설치" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" -"Streamline your workflow and customize your Ultimaker Cura experience with " +"Streamline your workflow and customize your UltiMaker Cura experience with " "plugins contributed by our amazing community of users." msgstr "당사의 놀라운 사용자 커뮤니티에서 기여한 플러그인으로 워크 플로를 간소화하고 UltiMaker Cura 경험을 맞춤화하세요." @@ -2988,7 +2988,7 @@ msgstr "재료 설치" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" msgid "" -"Select and install material profiles optimised for your Ultimaker 3D " +"Select and install material profiles optimised for your UltiMaker 3D " "printers." msgstr "UltiMaker 3D 프린터에 최적화된 재료 프로파일을 선택하고 설치하십시오." @@ -3132,7 +3132,7 @@ msgstr "패키지 관리" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" msgid "" -"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " +"Manage your UltiMaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." msgstr "여기서 UltiMaker Cura 플러그인 및 재료 프로파일을 관리하십시오. 플러그인을 최신 상태로 유지하고 설정을 정기적으로 백업하십시오." @@ -4449,7 +4449,7 @@ msgstr "보안" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" msgid "" -"Should anonymous data about your print be sent to Ultimaker? Note, no " +"Should anonymous data about your print be sent to UltiMaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." msgstr "프린터에 대한 익명의 데이터를 UltiMaker로 보낼까요? 모델, IP 주소 또는 기타 개인 식별 정보는 전송되거나 저장되지 않습니다." @@ -4804,7 +4804,7 @@ msgstr "UltiMaker Cura를 개선하는 데 도움을 주십시오" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:56 msgctxt "@text" msgid "" -"Ultimaker Cura collects anonymous data to improve print quality and user " +"UltiMaker Cura collects anonymous data to improve print quality and user " "experience, including:" msgstr "UltiMaker Cura는 인쇄 품질과 사용자 경험을 개선하기 위해 다음과 같은 익명 데이터를 수집합니다:" @@ -4831,7 +4831,7 @@ msgstr "인쇄 설정" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:99 msgctxt "@text" msgid "" -"Data collected by Ultimaker Cura will not contain any personal information." +"Data collected by UltiMaker Cura will not contain any personal information." msgstr "UltiMaker Cura가 수집하는 데이터에는 개인 정보가 포함되어 있지 않습니다." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/DataCollectionsContent.qml:100 @@ -4930,7 +4930,7 @@ msgstr "UltiMaker Cura에 오신 것을 환영합니다" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/WelcomePages/WelcomeContent.qml:67 msgctxt "@text" msgid "" -"Please follow these steps to set up Ultimaker Cura. This will only take a " +"Please follow these steps to set up UltiMaker Cura. This will only take a " "few moments." msgstr "UltiMaker Cura를 설정하려면 다음 단계로 이동하세요. 오래 걸리지 않습니다." @@ -5026,7 +5026,7 @@ msgstr "재료 관리..." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Actions.qml:216 msgctxt "" -"@action:inmenu Marketplace is a brand name of Ultimaker's, so don't " +"@action:inmenu Marketplace is a brand name of UltiMaker's, so don't " "translate." msgid "Add more materials from Marketplace" msgstr "마켓플레이스에서 더 많은 재료 추가" @@ -5625,7 +5625,7 @@ msgstr "3D 프린팅을 위한 엔드 투 엔트 솔루션." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker B.V. in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "Cura는 커뮤니티와 공동으로 UltiMaker B.V.에 의해 개발되었습니다.\nCura는 다음의 오픈 소스 프로젝트를 사용합니다:" @@ -6181,7 +6181,7 @@ msgctxt "@text" msgid "" "- Add material profiles and plug-ins from the Marketplace\n" "- Back-up and sync your material profiles and plug-ins\n" -"- Share ideas and get help from 48,000+ users in the Ultimaker community" +"- Share ideas and get help from 48,000+ users in the UltiMaker community" msgstr "- 재료 설정 및 Marketplace 플러그인 추가\n- 재료 설정과 플러그인 백업 및 동기화\n- UltiMaker 커뮤니티에서 48,000명 이상의 사용자와 아이디어를 공유하고 도움 받기" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Account/GeneralOperations.qml:58 @@ -6244,7 +6244,7 @@ msgstr "클라우드 프린터가 오프라인 상태입니다. 프린터가 켜 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" msgid "" -"This printer is not linked to your account. Please visit the Ultimaker " +"This printer is not linked to your account. Please visit the UltiMaker " "Digital Factory to establish a connection." msgstr "해당 프린터가 사용자의 계정에 연결되어 있지 않습니다. UltiMaker Digital Factory에 방문하여 연결을 설정하십시오." @@ -6519,7 +6519,7 @@ msgstr "Trimesh 리더" #: /UltimakerMachineActions/plugin.json msgctxt "description" msgid "" -"Provides machine actions for Ultimaker machines (such as bed leveling " +"Provides machine actions for UltiMaker machines (such as bed leveling " "wizard, selecting upgrades, etc.)." msgstr "UltiMaker 기계에 대한 기계 작동 제공(예 : 침대 수평 조정 마법사, 업그레이드 선택 등)" @@ -6542,7 +6542,7 @@ msgstr "압축 된 G 코드 리더기" msgctxt "description" msgid "" "Manages extensions to the application and allows browsing extensions from " -"the Ultimaker website." +"the UltiMaker website." msgstr "응용 프로그램의 확장을 관리하고 UltiMaker 웹 사이트에서 확장을 검색할 수 있습니다." #: /Marketplace/plugin.json diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index 9c6c89a143..78f4598d81 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -719,7 +719,7 @@ msgstr "Cura kan niet worden gestart" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:113 msgctxt "@label crash message" msgid "" -"

    Oops, Ultimaker Cura has encountered something that doesn't seem right." +"

    Oops, UltiMaker Cura has encountered something that doesn't seem right." "

    \n" "

    We encountered an unrecoverable error during start " "up. It was possibly caused by some incorrect configuration files. We suggest " @@ -938,9 +938,9 @@ msgstr "Netwerkfout" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:13 msgctxt "info:status" msgid "New printer detected from your UltiMaker account" -msgid_plural "New printers detected from your Ultimaker account" -msgstr[0] "Nieuwe printer gedetecteerd van uw Ultimaker-account" -msgstr[1] "Nieuwe printers gedetecteerd van uw Ultimaker-account" +msgid_plural "New printers detected from your UltiMaker account" +msgstr[0] "Nieuwe printer gedetecteerd van uw UltiMaker-account" +msgstr[1] "Nieuwe printers gedetecteerd van uw UltiMaker-account" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/NewPrinterDetectedMessage.py:29 #, python-brace-format @@ -1093,7 +1093,7 @@ msgstr "Printers verwijderen" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/LegacyDeviceNoLongerSupportedMessage.py:18 msgctxt "@info:status" msgid "" -"You are attempting to connect to a printer that is not running Ultimaker " +"You are attempting to connect to a printer that is not running UltiMaker " "Connect. Please update the printer to the latest firmware." msgstr "U probeert verbinding te maken met een printer waarop UltiMaker Connect niet wordt uitgevoerd. Werk de printer bij naar de nieuwste firmware." @@ -1760,7 +1760,7 @@ msgstr "Projectbestand {0} is corrupt: {1}!" msgid "" "Project file {0} is made using profiles that are " -"unknown to this version of Ultimaker Cura." +"unknown to this version of UltiMaker Cura." msgstr "Projectbestand {0} wordt gemaakt met behulp van profielen die onbekend zijn bij deze versie van UltiMaker Cura." #: /Users/c.lamboo/ultimaker/Cura/plugins/PerObjectSettingsTool/__init__.py:14 @@ -2433,9 +2433,9 @@ msgstr "Werk de firmware van uw printer bij om de wachtrij op afstand te beheren #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Vanuit UltiMaker Cura kunt u de webcamfeeds voor cloudprinters niet bekijken. Klik op 'Printer beheren' om Ultimaker Digital Factory te bezoeken en deze" +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Vanuit UltiMaker Cura kunt u de webcamfeeds voor cloudprinters niet bekijken. Klik op 'Printer beheren' om UltiMaker Digital Factory te bezoeken en deze" " webcam te bekijken." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2817,7 +2817,7 @@ msgstr "Meer informatie over anonieme gegevensverzameling" #: /Users/c.lamboo/ultimaker/Cura/plugins/SliceInfoPlugin/MoreInfoWindow.qml:73 msgctxt "@text:window" msgid "" -"Ultimaker Cura collects anonymous data in order to improve the print quality " +"UltiMaker Cura collects anonymous data in order to improve the print quality " "and user experience. Below is an example of all the data that is shared:" msgstr "UltiMaker Cura verzamelt anonieme gegevens om de printkwaliteit en gebruikerservaring te verbeteren. Hieronder ziet u een voorbeeld van alle gegevens die" " worden gedeeld:" @@ -2949,7 +2949,7 @@ msgstr "Plugins installeren" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Plugins.qml:12 msgctxt "@text" msgid "" -"Streamline your workflow and customize your Ultimaker Cura experience with " +"Streamline your workflow and customize your UltiMaker Cura experience with " "plugins contributed by our amazing community of users." msgstr "Stroomlijn uw workflow en pas uw UltiMaker Cura-ervaring aan de eisen aan met plugins die zijn geleverd door onze fantastische gebruikersgemeenschap." @@ -3012,7 +3012,7 @@ msgstr "Materialen installeren" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/Materials.qml:12 msgctxt "@text" msgid "" -"Select and install material profiles optimised for your Ultimaker 3D " +"Select and install material profiles optimised for your UltiMaker 3D " "printers." msgstr "Selecteer en installeer materiaalprofielen die zijn geoptimaliseerd voor uw UltiMaker 3D-printers." @@ -3156,7 +3156,7 @@ msgstr "Pakketten beheren" #: /Users/c.lamboo/ultimaker/Cura/plugins/Marketplace/resources/qml/ManagedPackages.qml:15 msgctxt "@text" msgid "" -"Manage your Ultimaker Cura plugins and material profiles here. Make sure to " +"Manage your UltiMaker Cura plugins and material profiles here. Make sure to " "keep your plugins up to date and backup your setup regularly." msgstr "Beheer hier uw UltiMaker Cura-plug-ins en materiaalprofielen. Zorg ervoor dat uw plug-ins up-to-date blijven en maak regelmatig een back-up van uw instellingen." @@ -4482,7 +4482,7 @@ msgstr "Privacy" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Preferences/GeneralPage.qml:862 msgctxt "@info:tooltip" msgid "" -"Should anonymous data about your print be sent to Ultimaker? Note, no " +"Should anonymous data about your print be sent to UltiMaker? Note, no " "models, IP addresses or other personally identifiable information is sent or " "stored." msgstr "Mogen anonieme gegevens over uw print naar UltiMaker worden verzonden? Opmerking: er worden geen modellen, IP-adressen of andere persoonlijk identificeerbare" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index d3a2fd7193..4e5f1834a9 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -2328,7 +2328,7 @@ msgstr "Zaktualizuj oprogramowanie drukarki, aby zdalnie zarządzać kolejką." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index a82984901c..0ec2b0af2f 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -2238,8 +2238,8 @@ msgstr "Por favor atualize o firmware de sua impressora parar gerir a fila remot #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "Fontes de webcam para impressoras de nuvem não podem ser vistas pelo UltiMaker Cura. Clique em \"Gerenciar impressora\" para visitar a Ultimaker Digital Factory e visualizar esta webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Fontes de webcam para impressoras de nuvem não podem ser vistas pelo UltiMaker Cura. Clique em \"Gerenciar impressora\" para visitar a UltiMaker Digital Factory e visualizar esta webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" diff --git a/resources/i18n/pt_PT/cura.po b/resources/i18n/pt_PT/cura.po index 2efea0fed7..acc3ed99de 100644 --- a/resources/i18n/pt_PT/cura.po +++ b/resources/i18n/pt_PT/cura.po @@ -2438,9 +2438,9 @@ msgstr "Atualize o firmware da impressora para gerir a fila remotamente." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Não é possível visualizar os feeds das câmaras das impressoras na cloud a partir do UltiMaker Cura. Clique em \"Gerir impressora\" para visitar o Ultimaker" +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Não é possível visualizar os feeds das câmaras das impressoras na cloud a partir do UltiMaker Cura. Clique em \"Gerir impressora\" para visitar o UltiMaker" " Digital Factory e ver esta câmara." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 9717170f8c..d136bb86d9 100644 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -2438,10 +2438,10 @@ msgstr "Для удаленного управления очередью нео #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." msgstr "Каналы веб-камеры для облачных принтеров невозможно просмотреть из UltiMaker Cura. Щелкните «Управление принтером», чтобы просмотреть эту веб-камеру на" -" сайте Ultimaker Digital Factory." +" сайте UltiMaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index a5be821147..616f09fc7e 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -2432,9 +2432,9 @@ msgstr "Kuyruğu uzaktan yönetmek için lütfen yazıcının donanım yazılım #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" msgid "" -"Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click " -"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." -msgstr "Bulut yazıcıları için web kamerası akışları UltiMaker Cura'dan görüntülenemez. Ultimaker Digital Factory'i ziyaret etmek ve bu web kamerasını görüntülemek" +"Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " +"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "Bulut yazıcıları için web kamerası akışları UltiMaker Cura'dan görüntülenemez. UltiMaker Digital Factory'i ziyaret etmek ve bu web kamerasını görüntülemek" " için \"Yazıcıyı Yönet\"i tıklayın." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index 57a0bc9780..ab9f22ff97 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -2330,8 +2330,8 @@ msgstr "请及时更新打印机固件以远程管理打印队列。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "无法从 UltiMaker Cura 中查看云打印机的网络摄像头馈送。请单击“管理打印机”以访问 Ultimaker Digital Factory 并查看此网络摄像头。" +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "无法从 UltiMaker Cura 中查看云打印机的网络摄像头馈送。请单击“管理打印机”以访问 UltiMaker Digital Factory 并查看此网络摄像头。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po index 7b4962a0f0..02f0a7f844 100644 --- a/resources/i18n/zh_TW/cura.po +++ b/resources/i18n/zh_TW/cura.po @@ -2331,8 +2331,8 @@ msgstr "請更新你印表機的韌體以便遠端管理工作隊列。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from Ultimaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "網路攝影機無法從UltiMaker Cura中瀏覽,請點擊\"管理列印機\"並從Ultimaker Digital Factory中瀏覽網路攝影機." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgstr "網路攝影機無法從UltiMaker Cura中瀏覽,請點擊\"管理列印機\"並從UltiMaker Digital Factory中瀏覽網路攝影機." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index 52d9cfc344..40612d87ac 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -93,7 +93,7 @@ Column width: parent.width height: UM.Theme.getSize("account_button").height - text: "Ultimaker Digital Factory" + text: "UltiMaker Digital Factory" onClicked: Qt.openUrlExternally(CuraApplication.ultimakerDigitalFactoryUrl + "?utm_source=cura&utm_medium=software&utm_campaign=menu-visit-DF") fixedWidthMode: false } diff --git a/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml b/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml index 453f2ed9e0..bdb790a79f 100644 --- a/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml +++ b/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml @@ -31,7 +31,7 @@ Popup { displayName: catalog.i18nc("@label:button", "My printers"), thumbnail: UM.Theme.getIcon("PrinterTriple", "high"), - description: catalog.i18nc("@tooltip:button", "Monitor printers in Ultimaker Digital Factory."), + description: catalog.i18nc("@tooltip:button", "Monitor printers in UltiMaker Digital Factory."), link: "https://digitalfactory.ultimaker.com/app/printers?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printers", permissionsRequired: ["digital-factory.printer.read"] }, @@ -50,30 +50,30 @@ Popup permissionsRequired: ["digital-factory.print-job.read"] }, { - displayName: "Ultimaker Marketplace", //Not translated, since it's a brand name. + displayName: "UltiMaker Marketplace", //Not translated, since it's a brand name. thumbnail: UM.Theme.getIcon("Shop", "high"), - description: catalog.i18nc("@tooltip:button", "Extend Ultimaker Cura with plugins and material profiles."), + description: catalog.i18nc("@tooltip:button", "Extend UltiMaker Cura with plugins and material profiles."), link: "https://marketplace.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-marketplace-materials", permissionsRequired: [] }, { - displayName: "Ultimaker Academy", //Not translated, since it's a brand name. + displayName: "UltiMaker Academy", //Not translated, since it's a brand name. thumbnail: UM.Theme.getIcon("Knowledge"), - description: catalog.i18nc("@tooltip:button", "Become a 3D printing expert with Ultimaker e-learning."), + description: catalog.i18nc("@tooltip:button", "Become a 3D printing expert with UltiMaker e-learning."), link: "https://academy.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-academy", permissionsRequired: [] }, { - displayName: catalog.i18nc("@label:button", "Ultimaker support"), + displayName: catalog.i18nc("@label:button", "UltiMaker support"), thumbnail: UM.Theme.getIcon("Help", "high"), - description: catalog.i18nc("@tooltip:button", "Learn how to get started with Ultimaker Cura."), + description: catalog.i18nc("@tooltip:button", "Learn how to get started with UltiMaker Cura."), link: "https://support.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-support", permissionsRequired: [] }, { displayName: catalog.i18nc("@label:button", "Ask a question"), thumbnail: UM.Theme.getIcon("Speak", "high"), - description: catalog.i18nc("@tooltip:button", "Consult the Ultimaker Community."), + description: catalog.i18nc("@tooltip:button", "Consult the UltiMaker Community."), link: "https://community.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-community", permissionsRequired: [] }, @@ -87,7 +87,7 @@ Popup { displayName: "Ultimaker.com", //Not translated, since it's a URL. thumbnail: UM.Theme.getIcon("Browser"), - description: catalog.i18nc("@tooltip:button", "Visit the Ultimaker website."), + description: catalog.i18nc("@tooltip:button", "Visit the UltiMaker website."), link: "https://ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-umwebsite", permissionsRequired: [] } diff --git a/resources/qml/Preferences/GeneralPage.qml b/resources/qml/Preferences/GeneralPage.qml index f285bc0c75..32bbcd5053 100644 --- a/resources/qml/Preferences/GeneralPage.qml +++ b/resources/qml/Preferences/GeneralPage.qml @@ -859,7 +859,7 @@ UM.PreferencesPage { width: childrenRect.width height: visible ? childrenRect.height : 0 - text: catalog.i18nc("@info:tooltip", "Should anonymous data about your print be sent to Ultimaker? Note, no models, IP addresses or other personally identifiable information is sent or stored.") + text: catalog.i18nc("@info:tooltip", "Should anonymous data about your print be sent to UltiMaker? Note, no models, IP addresses or other personally identifiable information is sent or stored.") UM.CheckBox { diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index b8b27049f6..2403d3d573 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -65,7 +65,7 @@ Cura.ExpandablePopup } else { - return catalog.i18nc("@status", "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection.") + return catalog.i18nc("@status", "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection.") } } else diff --git a/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml b/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml index 9b6ae0caf4..c737031e9d 100644 --- a/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml +++ b/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml @@ -61,7 +61,7 @@ Control id: thrirdPartyPrinterCard Layout.alignment: Qt.AlignBottom onClicked: goToThirdPartyPrinter - text: catalog.i18nc("@button", "Non Ultimaker printer") + text: catalog.i18nc("@button", "UltiMaker") imageSource: UM.Theme.getImage("third_party_printer") } } From c3b596b517f4382d6e650ff89d8a7841cf723ecc Mon Sep 17 00:00:00 2001 From: jspijker Date: Mon, 28 Nov 2022 14:50:19 +0100 Subject: [PATCH 174/185] Updated cura banner NSIS installer Contributes to CURA-9808 --- packaging/NSIS/cura_banner_nsis.bmp | Bin 206040 -> 618006 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/packaging/NSIS/cura_banner_nsis.bmp b/packaging/NSIS/cura_banner_nsis.bmp index 8643510664da4e6b45190778be04464b14098a18..31c5344a2f63c74c91bc28d42eb0655b4b05203b 100644 GIT binary patch literal 618006 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%0D$Et&gFx=s5QwUj0$ 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�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�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�f4d<|SXd0LY&Wd&!%f_{)frPBb6o;uz-1fC6 z)U~2ro0sk7HDiP?JKVu*d)9(;QqDS$wD@|lcIBH1)IdAv-kfW}`P39&Q@S8)nc@H( zBYZ4y8RQ1FO>ygH3*eO>-Y&K#VrvUuOEe2#moRQsT;o%tQ9fzLYMsgX+RuRZmAU?K zfg92JhFcHyw8q}}^|yv(VOBt!&G4xk<0JExVHlv%__Uw9bo&AI{w->7{}no34+=!p-F*Hg}4^xu@1QbzdZXnQ(#;kqe1ikWJsbg0YO zDY3)Ba_sO*1RnewYAaT#pf+jFg(#Wn7<)cFE%|-K-b>0Lu}^Ie@IQ z=U~S*t7;0`SmQr>4*(9F%egLSFTTbOA5%Q&&YC{a!w=AQ{91h77PvsoO80Gqi>zJf zEVH_XtaGqT@s4&Wq15qfNoQX5BkI|js!2_xsY?3jxY&laIhqNZF~vFPP?zJ^Chjr9 zb6~zM%HGLZj<&;F+Dkf1l`{)y2KZr0*F?LTucyEQti7_tZH*^*-7znV;o@sc;vTLu zIK|N!#sR4Zb`fixFM1lV1a5s-fhY~mHNo0?3QdUt{j5CV|F7$MT0K~fssWQ=h#?Y9 z{6Z!mXjFKMM?eu0gCgYPxe6qkprCHti7OFzq94KYx2k6DeJ~7t=hxHSbLlgu>Qr@) zY4jMh`L&(C+Bc5Wz6b1AhhG$V1h;TIJ>&6H&>(43Y3J1u8gVa=)?y^+5&W)bHR|D# z&Q79u6tnu*Oigi83eL2^y#RzpIG1sq;~D2-PN_Z+5IdYQ_)2G=N#c^u9$Dhqy^#KO z)^j0i@i0%RPb87|IWI03GOUEW<`mUM-$yI@mmHVf^i9!^}-t>zI)T&B2LTTBhgj&9bx6dUB(LOfe5 zNH;TID^I#=bl--i}W5`Z9P?t>aO(*7SAVsBx+hfp=do zYPs(s57mQoBecVPoGkHiw+rorunBPSwN!E9+R%n)Z2|2Xj_@lAkRYVvBSCNuv5g7pc20R;&;5Hi=nP1Yc17OoC}n# z;I+K$CXoW#AF|FEyoO~SrnZ0<7ds*Bq3q`tXOhH~B2KdQ0c%{K9xuCkxD4{!7L)K%5QxYFlJo#qF2nVhc?OF%~P@1%w(wXO(w=vfPjn4UjlHgFfCz=M}1jPV~ zWkGds9CWC#?LV%U7N=P>LKC_@PUXkI7SS4mj06Gj)yw`VQ=DUCJHhYt(rUcU|C_7% z>HJWj=|HSpTNgW~xIfxuz7|=_2zSa^q%-dyzPL`7 zxcqC$Wp=S8iN_Sb+lebFMbWOmHf0mn_^>99nKi3thSSx3zanl;HC0@+N4M{4hRG?D zXWgcN<9l&7p!nz9;&%8aVeVIo3J>%hoGv8yk@c8<1orDTb>6;oT|d?E;4lP#-wsg! zAM9{NyN0GwxVUz-i=nQn;*rj-9)1>mL>Py3_H)L(jvn5nA7E;6H*o!5%1C)ev8jrW zXl7{3{Pxn1M6?a~;2O z2%D^}tg}$I)H4X+_!H;ZJEa>Um8oTZj~#BNo-_4ueHTDq-(%$ZAH5Zl$Qs;DTw6Wk zI!#;PTCk~{(zw`vF(1rzwCfS%GP-Mrk979i#<(e)qS?l|h-*{!%LoU+#n;Lv<(^0@ zodLz-Yn&sUjdLwK+#47Ym^>_B4>tubp5b9(LS|-i3%uA_opuCsQ!0OA1>>uI`4(O5 zd%!q#g&?Rm-n-b2dt_fzCiYW}1sVw(A6KfKXq%)QQZAZK4Un^03#Bl22B5Q)WlDL9gqHLPtw8n?5 zVSW?W6vKJY4%cx^@w-|xIifZb$>_DHzwXz^$8Q>q1)KHON8Mw#Flx z(YYpN2iM0G2SEqd3}-9a^-3kBZZ>f)y4WX#oh4mPIlD%9vs1#?NjYn%>w=n;t%Y4M zznM*H^-QUx58dpp!rm0|@b!bTuIny}S1#yR{>0mX!CLZa zO@NJ?%mM2b7F5m);S7N7_^0$pAeYJ|xvRVP@OVq%f5yYs++#2DL0tBAzbK6BnBoXz zYnz23Yue<+wWTu{;Vu}|bg}=I2leo#oJA6!P?z=aUHY-C9p_s9wLy(5|M@q7b|i6; zwLqN>kp${|^@A3;qu3}A-F2=nYY(DL)*xs=Td65Z6xZG-*HwOETZg8^?;6*1%YRS{8d-#BePC1 zrQt1<3dxL9?b}diBW_&hZ9#BO3w_v*tF94hAW*_G?Q*7I4g>6F&s%L%}dc93*hSrXg`m1X7!8~cn_nStlhQPbgsDs zdy~!lrF)5Hw8jBsoqrEWq(Zmy&5Y|4=dvEIG!+`;F~ZjrceIP=vAr*-agla-Klx!* zoc?vP#P!J!>SkQ6`Esr!olU@tq8T+!m}<#`Ta9Dhx55i;K9{H*yIa9frme7sV`Y5$IC+merl_TCi|ew3y9- zunlI6r}d5Za|?g!aUQczIyHABXBhldgM2nC`@vSkjK>elvz|^&4QO|@X17IpQMO&| z`q#-OC0WPCZr0iT9QHHLq zE0%2++vjnvrJKyTn#ms&hnf>?>aTXs4QC+8Mzx^C)`~}WB<$cu11Bx0Ya=M=@Rbh0l|`v}$<#=g zPT3KkMdMF>Hp20w7a>s((y{Rw;{y2q(3)!Yzt;z!fs0KgysCH-RIVgW|GN2Rg!Xe)7tl@T zdT_0;YizVuMzI`*9l&S zuV;Q1-Jaw*=hvi>5GJ~!GcfBn!=j^afItk59I&t&E1Vv;uUs4$qGqAmmk)8uYDXu( z=u=+{WY%IM}%}yCa53a-4q-?Iju8YllGuz=t zH!W}(;c~9W6yGIX&%6}okpkvg{Q>8iL9RlZ<)Q53Tr=g2qM5wx(a?ZpAC7P_+9i(W z#-#c(mjF&NJkr^LHYM>wJCrSedxa*LdW>*ETe=yXYq`~qbB%7sf;gI?E;4n`&QTF7 zEoAzqXSEQaSsfq~l7eixmChuF3*CY?DBE^;b{htRGe5k#nE?*Bx~90qaN&9+@fhJ@Z9CUi z#n;7-5w0xp%4G^(OEF`>>*!|kskNT#gu2GXUfoO<_z7Wa0Z5l>RyWHkY*RMQ&Pd7G zsiX>Z!O;e^52CeZQ<8X~jX-v`Bo(N&Wr~>^X9(j}!pYPq3)%*?LfG1QcyX=d@MNb% z80W5}6vmaE!uWM|FHCZ{p$$0mQ1IFSf0^QrbIBAxp)TNBl${VZQ_jwkE>kuIH12~W zJKWCo*Zgfw``6Uax*HMzJ}$PWHzuSDbM8#egwK2qFPEl!mn-95x5KkhX`&?45j9ic z6bK^y)IvBtUHC55Ke)@QhPU7+AFPS%qFvYbucrkLqxJn<{1X*&FPq|Z)wwli z%=5awJE{f#4q=ZHjzZRbxKNvX_3$qJs2&b<|3UU9UC}H7FB{v`y1y>ZNQL;q&2-EC2ztC5dZ;1#`Fg`bpVDw0v!ax{e+m-AqeA zyzT?64MYdmMZ|L&a}ML+EET=x&krWCr}0z<9C`(a7-$#>zGBFv>>JPR=#h7+9S5LY zU*oZpE=xGQ=t_I!Xj#U^z0Qsb(md4I-Zr`U^2sxDoEc1?lx^;RU@O>YnenIV+|Kpa zIG7^dY*G+3^HOYtH-s(SZ1*s%B(CIeOX5|`V1fHc2%FHpyQVP61uS!^rV6yfMbkJ7 z(X*;c(JrmLZfc6xb{X3EtWT71SmR!NJ?pP0gdNr{WfRvD!^_vu%~ld$RlJ~HMBn6a z@%2eL(^g2Mhu6ynYXjy3?XkmMfTPVM(kGm4jf=A7Su0EYs^WL4rV(vu1Izf+=C{e3 z&Na4H;F+elgIu=8L)KBu;Aqzfw_7dq+kAcW@WnN-3}_qCSpYIyA(^Zj>WXJAVLVH^ z6vcjuW^}Hzm$*S864Wfs9OhK7VYvgDqP1D2ed~zlOE0mn{u(Q z7>@Ed+8}FN=1Mtpc8aq}P1!NR8R{yoX@|qV_L-vDhOiBA$lyfxWQlj_2MuyYyL3z* z>E&zN;W!h{bhPbRk8}n&Qx&ghhCi#Gap?!j)y-&r&w+e1d)6?>$yDh3x|cXt^`L#L@}}iohyZd)T;32LSwkks5Iz$o;F$7 zVfZaUR&_goGYiJA#TbFCEdsN$dPUYKZCJZlHJW<8g`)m5^lbFIZ(gKOrc#Kle$srC|I-3-M2S(fiw8bmtrQ<6r+qG(Dgew7=O8b-nHI zN@q9JCB^Ky{uUtTXh7$$MgD@Jo_0~{~JuRX<08i{n@+v6vxJJcf_@}Oragl4`FAovmt9^ zndgzt9JX#MDcouuq-@hP3Zt7@G+W9Rx@m_W-7J)y$hEBTh~X5?80tEQIT~k3XHHOw zDsJ`ch3HUc6EMHJnNrS}kus`y(H&5)9xhXSp#3n# z_gh`$YcTa3qn`N#_xN*lGkVzsco2<3Rq+wcWP~SCoT|84d;IG)#jTj}tD22p(+;nf zoi!kYwnEsYY~q^Ht{UNC?LXes6l^;jfGdOzEK5BrWjj$^WL;G}{xuR*I;)9}0>>AN zCfVVIUMBOY8BAeH`&c083Tx)=G54x{@-OdoQ*$2F`&Wa=cwx(7?KGtxS+=vlY8b76 zrrXWVI2-kO*lA4#-M()I%YC`1QSn~i()XCW552h5b#mV3SpaAI*F2N2i|gZGU+HX& za1@x7!n~A3xU8EI-AO3*28Ji##a&Z~=+Vsv(PnKcW;i<|~hwbQ&Xy&jUGQyRP;|9W>DmMKoYCUMWVu$df= z1Dhb-trhSmaV`Ja&_1|kkjv<%9$qh72`UY8RXU3)zRq=^4I>=r9#fp3^%1lwok1 zX^iV7A9^2hxw761@qB$xsaIRDj-dogxyHQmd*jFhR?Hr*Xt?v<47 z1>C082RWBV{X(lN1??d($!Z5P|ncJ5iuq3muX9#9k4F~VV!M>^{|O@ex?@mZ=VbaPe{+L`Ju7y_BSn#P{Y zx0+!!=iYch#PZxYZO)b4vi9v@r%)0>`}M-NL5nwL$FT=-0*Ju3Ne4Y3;&}}i?1((U!!u5l!lSHa-=9aQ$ zhcnZRxK@66>~Jsr2w#J>^_8ybW+R$T0nttor)T}`e<`l7 zXa;Bl%V2F&wjrQ^v)-WTYchOUeZNGH`>*WNgL;hSLJ?!QGHX42PF3^ZUZtl)YrVt2LQKnnQUhD35auq!ZT$wRcy@riIBm z8@?V~3(?$?)T+2V>zkTVQ`|YF+-;a*I9U6**iZkud!4}o|2)+7G{Rw%JCF1!iOa>V zDL$btC7aEjNLhjnYuvh-Kb0FXT+n8aiz#Q^z0ilYLMo7n7tV0cTby0S1opJ|>5@=1`xP1js=hx|1ExVmlA2r3u3_y1<9W$=*BF}xIQ-@gQfpO~n zpyyJ{c|ozP8`ZKe3h!*BFEI_+4{oJRTTtbGe% zkViKIx@C|*_>18ruc1lp5L z%3V_u>hije2C{|a4Ry)6M%J168m71p3TW6q1?m|PZ4C{eHoBphdG8by$kcyM&$@Ov z^TXH07GImSd)~cMMAq-EkSd*R2)nqJb4}@te654oDNZFtp%!>ICN-|tzkaCVzyfEi zrm-iy0P?sZ_!u3$F33FNP?-FYqm3`lcC}_IKQ93RaDO#I557DG_1KPhix8*E9B|(T zA1Vu>`c)4ly~|zrBFcenABVph&b;@-!LC`suM{>iy?01I5??1Hg;8vq-vILPHOQJ? z_K4xnD7JJnD&awQaLsK}=wFX14yG2a0cR9&Ca&)~&3f6u^6Xw{TpQ6=#cPB+a-Fa5 znW=ToS2g2hJ4Kw*8KG@lV*^7eW?qG@uVC-$j|8uQ@x-~x+9qzm82}fkwG~q1*R;mD zRI|7~eC-W~AGl5w8(#nsWmginDPI4Y8Kk0YIog49Ks_5Gfuo140c!CzO>ys_LTg+} zDaN&+{moxjJ%errfLjR{sHaS5o2d!yhOn)KOBJ_&t<{>@<*eDHjdl%RQx#t?8|s;o zNa0z3GOS9K{VMO&trxW(7Ip34H7gV){Y?C54fH}!CQ3tI`Lf-|}M zrH3P`b@>|BIGt;I*%QL1f6b*I%so2`vB$r5;gNL~rgrd}XMUxN2R9N2qQ@F{{92UF z?Gz@?g#yXit3SH1D|}r$JX%t&9YrDSn&j;FdvA?BMQir;fB`)V$pZ}m8{?Nvi zol+y*dicu@H(&2!u940*!u4n0*rXJ}S#hq&W%ja_nnI>dmUvZhQFcSva;{C;Ky*P( zJsjC77R|`rN+Kn?sfXLk)?C$u?-YGvJh5F|T$FJd*8}xkI%lfa0LGtgJZ}u)h3yDL z`jw1%>J&0)-$)s}xV!XKIqT82$XAVDpuK3i-C^*8zdDM6(UG){p0@+w#Wb!#>PEc{ zMBn^VFD39Y!dp5skZryuSbG3JDho>UI21U z@d5R(ka!l#R)UJ6*bnuL`Qc|FwnEsJ!RcQ!|qes8d!eSU3yZDyp8{Cj+X7)2C(`dm<^?HJ}z>Q#bo+>5N7=SeuBBDXvi0+TlSrf?SPuWdlPnwWHY7 z#+ypY`1MHQLUg4ws%PM6Af4X`Q0|$sNh6)vp`K_LU2LgmS<t!FID zp0R@1{;8T5cYBv#2y-KEFTJWM)C}I;NSh+kTR|=NE_ID7e#vA!s)=%jXIns&GfHo_0CotHw;!65JaFA82@Bu9Imy8`|!s0Bt%dqQt! zey#{jcB}OhD)8QW2vcr6_;Sr@^A`Bi!})!{Tm!)SA+6y?F|6RvyUy?e^L-Fm7pcG- zJILO}|G-?&#k_gih`KOGzd-Fj>0&c-P2G%zde(tFtzq8YQ!K-1lo)EVROsk!$n-LNv^89ooGRSDbIgujQ7kU)d=}_jR$& z+CVf4&JUL)o?TN+)=WG*&b1V?Li^wvVmOE!aQ68HYVb8hGwI=hwxeAlYg0D)x`+L1 zLHnrU$~rTsZIH(rSCA{xS;(5ExFm7qr3_^^c&$*EQb_^o7~WRQ0_w5Dog9Ac@RLd^ z(abreE1e}p9DMzB&5EzOxi_+p>0S2!8&he)U8Ax`b$kTY&w zsq9x=Umba(Y5&otA4l%Su>23Ho6WI$xGiv}k_y^G+4H>*k~Nb^g=;z2u*QL9qWj`n z3qUNLc_Z;kXVSw(*%Zxs7|xNze_HkIk#AP@jQQb8O_?~C5=v`)!O%a?8YUQO!4_~roAe#rXNjf%O_=9J-^GOilAi{%rp1G}BIp5xy|*+v z&=ZQca;^(jg-_{Hz3@Fy(6ui@vH;KHOgnuvb?$sYd*$s6G*YL9CXx~s5CGjX` zOV&a(Tx>x2DVizNMY$~KUQ_(;n&SL$orkaKQ){>3K{WEi>tEXr7qpLyT}hmLT|JyM zt%F%-B5QpxS9UnyY-lfEH`DBua%M!Eua~TqdnV^PaV|ld!nlH5u*Ma_)+axPuN~g{ zN>jX1>~XHa*P?78T3`Jb&pOVvT(jOB}nB4zzFZI+P9DTVx$meD!eq z*NS3S4_63VCZ#8~=O@aAcBZkf=pyjqUk5lUpb^gV&iUY!w};d9u1GmCZZ?G;i?y_D zgsR7BO+AKc)#kZNx1*+@2i7iq_Ypi!wvYqus7^=gL8kY%#!=OYQ12f9KA?K^JES%M zP&_n^q!er8fp$Y(vc{WAn(UN6go}M~O=y?3WsrBl=HS|TxYlzC)cFdwKj;I#PS#me z@$X?5aoXW$Js0Hh+TkOe^~0JYi7U=!gM5~L0MVAt7TOlga88PNlFhR8Lx`pk-Z+;x zIs>SAfU>m&JJQ)Ep3xeAuIkc0NU_6djhnTbMCufAEdY@n9$dfoCKY8%K#PAZ0S$2W zK^I$0JubGLYn?tCv zO!X&Q?|yHjqk~_zf6Qj$j&GQb^RprCU;d$2jXxddY91;0nyauahWl)EBh&>To2-A+trcvO z+r>7zM>>ONZCrz|opnaO-Z&S%Y>H;*0HX0{tZ@~(g}9}&ejwlpZR=)nv1e6Rvs2!wagv*cIMs+d0L(3J(~T2itgpUwV?Z~J z=vQGdBT?fR;lerX`xd?ga&479SHjw-Ip3vcdsr||Br<052m zhZoo0NIZN!aW3YEho%pxm3UUNZq`}t@MfJUFNFk+fk!H|tEqEzzu$UC%lxXQgZhueAz0fox#;-+n@~+|rp$@ur-;zLuK} zhr`!$t`Wj+inyF>nBsu8%yRCX0(A3e!KtK(Ul-a9b=k$nS$U)~!kKRdP&bNA))t~? zPbA^`$Jp!aI@+|xf#Qp9@pX4iu^o;Oc2dM0=aQp+0@){zwCY*JaC+IY!;?yC&w8XY z%yUzAXR=XdL}< zG05eO<5Y~U?AP}2~m;qBZ}Yh|OG zSqZ0f)&tOvDZXTFrUuM!e)tR8UH9?($G^@O0i2y;8Qf=>+{Cq3eApD94`Is`&(e?T zW?A$>7n{yC$T|gUXeULyU;P;M%yu|a&f;QI43`rABZ48;0GPs6rCh3eZuX@%4ZF$yJ&u&7gKd!LS0?@ zK~Uq99{{raYax2XaI^OCHKSeR>!%SeID0MjF~y;t715h-#vm6!9cYWJS3SES?9S3) zL2k0=yk_jcFq2$AVKUF0Ul{r)f-6a(0~1dEL1Nz(sb-Y**ISdl0BHJ&*WGC`t1FLR od8O^-{lGu>9TKRv!F`0nc`LI!-pD#iCtKTqSBhm<^ZVrg0iHZfa{vGU literal 206040 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 Date: Mon, 28 Nov 2022 14:51:35 +0100 Subject: [PATCH 175/185] Updated macos installer background Contributes to CURA-9808 --- packaging/dmg/cura_background_dmg.png | Bin 57851 -> 376172 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/packaging/dmg/cura_background_dmg.png b/packaging/dmg/cura_background_dmg.png index e83860829345c336c61f93dbcc38e7f333974891..536df10e30e6266f6b0fb3058b21a1e5fbe3a0ee 100644 GIT binary patch literal 376172 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 eKT=n=8C0)AUfL;~Uvix3p3>nBf`ZT0NBY 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 U%-cLDb^rhX07*qoM6N<$f>j3z5dZ)H literal 57851 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 Date: Mon, 28 Nov 2022 16:26:06 +0100 Subject: [PATCH 176/185] Updated macos installer background Contributes to CURA-9808 --- packaging/dmg/cura_background_dmg.png | Bin 376172 -> 390200 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/packaging/dmg/cura_background_dmg.png b/packaging/dmg/cura_background_dmg.png index 536df10e30e6266f6b0fb3058b21a1e5fbe3a0ee..8f2fb50b051a884ac87740b43c2cfb3108c8f1b5 100644 GIT binary patch delta 347571 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 @E7U3htg<3JB!iIONuov*q%CnMV%b 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%0A}ru?-fSW+E{(^s9J8VIVLz2e{v4Wm{ha0M8-z| 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�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 z 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
      {}

    ".format(device_names) - digital_factory_string = self.i18n_catalog.i18nc("info:name", "UltiMaker Digital Factory") + digital_factory_string = self.i18n_catalog.i18nc("info:name", "Ultimaker Digital Factory") website_link = f"{digital_factory_string}." diff --git a/resources/bundled_packages/cura.json b/resources/bundled_packages/cura.json index 9c7702e9ad..cdcd88f709 100644 --- a/resources/bundled_packages/cura.json +++ b/resources/bundled_packages/cura.json @@ -122,7 +122,7 @@ "package_info": { "package_id": "DigitalLibrary", "package_type": "plugin", - "display_name": "UltiMaker Digital Library", + "display_name": "Ultimaker Digital Library", "description": "Connects to the Digital Library, allowing Cura to open files from and save files to the Digital Library.", "package_version": "1.1.0", "sdk_version": "8.2.0", diff --git a/resources/i18n/cs_CZ/cura.po b/resources/i18n/cs_CZ/cura.po index d6eade5162..4d714496dc 100644 --- a/resources/i18n/cs_CZ/cura.po +++ b/resources/i18n/cs_CZ/cura.po @@ -1027,8 +1027,8 @@ msgstr[2] "Tyto tiskárny nejsou napojeny na Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1180,8 +1180,8 @@ msgstr "Sledovat tisk" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Sledujte tisk v UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Sledujte tisk v Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2348,8 +2348,8 @@ msgstr "Aktualizujte firmware tiskárny a spravujte frontu vzdáleně." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "Vstup z webové kamery nemůže být pro cloudové tiskárny zobrazen v UltiMaker Cura. Klikněte na \"Spravovat tiskárnu\", abyste navštívili UltiMaker Digital Factory a zobrazili tuto webkameru." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "Vstup z webové kamery nemůže být pro cloudové tiskárny zobrazen v UltiMaker Cura. Klikněte na \"Spravovat tiskárnu\", abyste navštívili Ultimaker Digital Factory a zobrazili tuto webkameru." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2415,8 +2415,8 @@ msgstr "První dostupný" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Sledujte své tiskárny odkudkoliv pomocí UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Sledujte své tiskárny odkudkoliv pomocí Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5654,8 +5654,8 @@ msgstr "Moje tiskárny" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Sledujte tiskárny v UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Sledujte tiskárny v Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6066,8 +6066,8 @@ msgstr "Cloudová tiskárna je offline. Prosím zkontrolujte, zda je tiskárna z #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." -msgstr "Tiskárna není připojena k vašemu účtu. Prosím navštivte UltiMaker Digital Factory pro navázání spojení." +msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." +msgstr "Tiskárna není připojena k vašemu účtu. Prosím navštivte Ultimaker Digital Factory pro navázání spojení." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6296,7 +6296,7 @@ msgstr "Připojuje k Digitální knihovně. Umožňuje Cuře otevírat a ukláda #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "Digitální knihovna UltiMaker" #: /GCodeProfileReader/plugin.json @@ -7180,8 +7180,8 @@ msgstr "Fáze přípravy" #~ msgstr "Odesílejte a sledujte tiskové úlohy odkudkoli pomocí účtu UltiMaker." #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to UltiMaker Digital Factory" -#~ msgstr "Připojit se k UltiMaker Digital Factory" +#~ msgid "Connect to Ultimaker Digital Factory" +#~ msgstr "Připojit se k Ultimaker Digital Factory" #~ msgctxt "@info" #~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." @@ -7315,11 +7315,11 @@ msgstr "Fáze přípravy" #~ msgstr "Tiskárny přidané z Digital Factory:
      {}
    " #~ msgctxt "info:status" -#~ msgid "
      {}
    To establish a connection, please visit the UltiMaker Digital Factory." +#~ msgid "
      {}
    To establish a connection, please visit the Ultimaker Digital Factory." #~ msgstr "
      {}
    Chcete-li navázat spojení, navštivte Ultimaker Digital Factory." #~ msgctxt "@label ({} is printer name)" -#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit UltiMaker Digital Factory.

    Are you sure you want to remove {} temporarily?" +#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit Ultimaker Digital Factory.

    Are you sure you want to remove {} temporarily?" #~ msgstr "{} bude odebrána až do další synchronizace účtu.
    Chcete-li {} trvale odebrat, navštivte Ultimaker Digital Factory.

    Opravdu chcete dočasně odebrat {}?" #~ msgctxt "@label" @@ -7355,8 +7355,8 @@ msgstr "Fáze přípravy" #~ msgstr "Webová kamera není k dispozici, protože monitorujete cloudovou tiskárnu." #~ msgctxt "@button" -#~ msgid "UltiMaker Digital Factory" -#~ msgstr "UltiMaker Digital Factory" +#~ msgid "Ultimaker Digital Factory" +#~ msgstr "Ultimaker Digital Factory" #~ msgctxt "@text:window, %1 is a profile name" #~ msgid "" diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 70bdb20755..61764ad5ac 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -1058,7 +1058,7 @@ msgstr[1] "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 @@ -1206,7 +1206,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 @@ -2419,7 +2419,7 @@ msgstr "" msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2486,7 +2486,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -5822,7 +5822,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 @@ -6493,7 +6493,7 @@ msgstr "" #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "" #: /GCodeProfileReader/plugin.json diff --git a/resources/i18n/de_DE/cura.po b/resources/i18n/de_DE/cura.po index 6b4bfd2bcb..65346cc167 100644 --- a/resources/i18n/de_DE/cura.po +++ b/resources/i18n/de_DE/cura.po @@ -1067,8 +1067,8 @@ msgstr[1] "Diese Drucker sind nicht mit der Digital Factory verbunden:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1215,8 +1215,8 @@ msgstr "Druck überwachen" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Verfolgen Sie den Druck in der UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Verfolgen Sie den Druck in der Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2437,8 +2437,8 @@ msgstr "Damit Sie die Warteschlange aus der Ferne verwalten können, müssen Sie msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "Webcam-Feeds für Cloud-Drucker können nicht in UltiMaker Cura angezeigt werden. Klicken Sie auf „Drucker verwalten“, um die UltiMaker Digital Factory zu" +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "Webcam-Feeds für Cloud-Drucker können nicht in UltiMaker Cura angezeigt werden. Klicken Sie auf „Drucker verwalten“, um die Ultimaker Digital Factory zu" " besuchen und diese Webcam zu sehen." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2505,8 +2505,8 @@ msgstr "Zuerst verfügbar" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Überwachen Sie Ihre Drucker standortunabhängig mit UltiMaker Digital Factory." +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Überwachen Sie Ihre Drucker standortunabhängig mit Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5855,8 +5855,8 @@ msgstr "Meine Drucker" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Überwachen Sie Drucker in der UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Überwachen Sie Drucker in der Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6295,7 +6295,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the UltiMaker " "Digital Factory to establish a connection." -msgstr "Der Drucker ist nicht mit Ihrem Konto verbunden. Bitte besuchen Sie die UltiMaker Digital Factory, um eine Verbindung herzustellen." +msgstr "Der Drucker ist nicht mit Ihrem Konto verbunden. Bitte besuchen Sie die Ultimaker Digital Factory, um eine Verbindung herzustellen." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6532,7 +6532,7 @@ msgstr "Stellt eine Verbindung zur Digitalen Bibliothek her und ermöglicht es C #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "Digitale Bibliothek von UltiMaker" #: /GCodeProfileReader/plugin.json diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index 3285efcd15..beb7deed23 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -1067,8 +1067,8 @@ msgstr[1] "Estas impresoras no están vinculadas a Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1215,8 +1215,8 @@ msgstr "Supervisar la impresión" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Haga un seguimiento de la impresión en UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Haga un seguimiento de la impresión en Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2438,7 +2438,7 @@ msgstr "Actualice el firmware de la impresora para gestionar la cola de forma re msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgstr "Las transmisiones de la cámara web para impresoras en la nube no se pueden ver en UltiMaker Cura. Haga clic en \"Administrar impresora\" para ir a UltiMaker" " Digital Factory y ver esta cámara web." @@ -2506,8 +2506,8 @@ msgstr "Primera disponible" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Supervise sus impresoras desde cualquier lugar con UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Supervise sus impresoras desde cualquier lugar con Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5856,8 +5856,8 @@ msgstr "Mis impresoras" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Supervise las impresoras de UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Supervise las impresoras de Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6296,7 +6296,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Esta impresora no está vinculada a su cuenta. Vaya a UltiMaker Digital Factory para establecer una conexión." +msgstr "Esta impresora no está vinculada a su cuenta. Vaya a Ultimaker Digital Factory para establecer una conexión." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6533,8 +6533,8 @@ msgstr "Se conecta a la biblioteca digital, por lo que Cura puede abrir y guarda #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" -msgstr "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" +msgstr "Ultimaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index 0eddbae3e3..71c3d49df7 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -1014,7 +1014,7 @@ msgstr[1] "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 @@ -1157,7 +1157,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 @@ -2315,7 +2315,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2382,7 +2382,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -5610,7 +5610,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 @@ -6019,7 +6019,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." +msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 @@ -6249,7 +6249,7 @@ msgstr "" #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "" #: /GCodeProfileReader/plugin.json diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index bff7de31dd..d730ef796a 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -1067,8 +1067,8 @@ msgstr[1] "Ces imprimantes ne sont pas associées à Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1215,8 +1215,8 @@ msgstr "Surveiller l'impression" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Suivre l'impression dans UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Suivre l'impression dans Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2447,9 +2447,9 @@ msgstr "Veuillez mettre à jour le Firmware de votre imprimante pour gérer la f msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgstr "" -"Les flux de webcam des imprimantes cloud ne peuvent pas être visualisés depuis UltiMaker Cura. Cliquez sur « Gérer l'imprimante » pour visiter UltiMaker Digital Factory et voir cette webcam." +"Les flux de webcam des imprimantes cloud ne peuvent pas être visualisés depuis UltiMaker Cura. Cliquez sur « Gérer l'imprimante » pour visiter Ultimaker Digital Factory et voir cette webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2515,8 +2515,8 @@ msgstr "Premier disponible" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Surveillez vos imprimantes à distance avec UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Surveillez vos imprimantes à distance avec Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5890,8 +5890,8 @@ msgstr "Mes imprimantes" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Surveillez les imprimantes dans UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Surveillez les imprimantes dans Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6340,7 +6340,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Cette imprimante n'est pas associée à votre compte. Veuillez visiter l'UltiMaker Digital Factory pour établir une connexion." +msgstr "Cette imprimante n'est pas associée à votre compte. Veuillez visiter l'Ultimaker Digital Factory pour établir une connexion." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6577,8 +6577,8 @@ msgstr "Se connecte à la Digital Library, permettant à Cura d'ouvrir des fichi #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" -msgstr "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" +msgstr "Ultimaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" diff --git a/resources/i18n/hu_HU/cura.po b/resources/i18n/hu_HU/cura.po index 578c2c76a7..2170203de9 100644 --- a/resources/i18n/hu_HU/cura.po +++ b/resources/i18n/hu_HU/cura.po @@ -1022,7 +1022,7 @@ msgstr[1] "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 @@ -1165,7 +1165,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 @@ -2327,7 +2327,7 @@ msgstr "A távoli nyomtatásisor kezeléshez kérjük frissítse a firmware-t." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2394,7 +2394,7 @@ msgstr "Az első elérhető" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -5624,7 +5624,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 @@ -6033,7 +6033,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." +msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 @@ -6263,7 +6263,7 @@ msgstr "" #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "" #: /GCodeProfileReader/plugin.json diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index 48f301a03d..162dda5cf6 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -1067,8 +1067,8 @@ msgstr[1] "Queste stampanti non sono collegate a Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1215,8 +1215,8 @@ msgstr "Monitora stampa" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Traccia la stampa in UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Traccia la stampa in Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2439,8 +2439,8 @@ msgstr "Aggiornare il firmware della stampante per gestire la coda da remoto." msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "Impossibile visualizzare feed della Webcam per stampanti cloud da UltiMaker Cura. Fare clic su \"Gestione stampanti\" per visitare UltiMaker Digital Factory" +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "Impossibile visualizzare feed della Webcam per stampanti cloud da UltiMaker Cura. Fare clic su \"Gestione stampanti\" per visitare Ultimaker Digital Factory" " e visualizzare questa Webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2507,8 +2507,8 @@ msgstr "Primo disponibile" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Monitora le tue stampanti ovunque con UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Monitora le tue stampanti ovunque con Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5853,8 +5853,8 @@ msgstr "Le mie stampanti" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Monitora le stampanti in UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Monitora le stampanti in Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6292,7 +6292,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Questa stampante non è collegata al tuo account. Visitare UltiMaker Digital Factory per stabilire una connessione." +msgstr "Questa stampante non è collegata al tuo account. Visitare Ultimaker Digital Factory per stabilire una connessione." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6529,8 +6529,8 @@ msgstr "Si collega alla Digital Library, consentendo a Cura di aprire file e sal #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" -msgstr "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" +msgstr "Ultimaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po index 5436aaed05..0380e5cdac 100644 --- a/resources/i18n/ja_JP/cura.po +++ b/resources/i18n/ja_JP/cura.po @@ -1057,8 +1057,8 @@ msgstr[0] "これらのプリンターはDigital Factoryとリンクされてい #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1203,8 +1203,8 @@ msgstr "プリントをモニタリング" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factoryでプリントを追跡" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factoryでプリントを追跡" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2414,8 +2414,8 @@ msgstr "キューをリモートで管理するには、プリンターのファ msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "クラウドプリンターのウェブカムフィードをUltiMaker Curaから見ることができません。「プリンター管理」をクリックして、UltiMaker Digital Factoryにアクセスし、このウェブカムを見ます。" +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "クラウドプリンターのウェブカムフィードをUltiMaker Curaから見ることができません。「プリンター管理」をクリックして、Ultimaker Digital Factoryにアクセスし、このウェブカムを見ます。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2481,8 +2481,8 @@ msgstr "次の空き" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factoryを使用して、あらゆる場所から自分のプリンターをモニタリング" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factoryを使用して、あらゆる場所から自分のプリンターをモニタリング" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5810,8 +5810,8 @@ msgstr "マイプリンター" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "UltiMaker Digital Factoryでプリンターをモニタリングします。" +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Ultimaker Digital Factoryでプリンターをモニタリングします。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6244,7 +6244,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "このプリンターはお使いのアカウントにリンクされていません。UltiMaker Digital Factoryにアクセスして接続を確立してください。" +msgstr "このプリンターはお使いのアカウントにリンクされていません。Ultimaker Digital Factoryにアクセスして接続を確立してください。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6481,8 +6481,8 @@ msgstr "Digital Libraryに接続し、CuraでDigital Libraryからファイル #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" -msgstr "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" +msgstr "Ultimaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" diff --git a/resources/i18n/ko_KR/cura.po b/resources/i18n/ko_KR/cura.po index d51c4ebd6a..432da63c3b 100644 --- a/resources/i18n/ko_KR/cura.po +++ b/resources/i18n/ko_KR/cura.po @@ -1058,8 +1058,8 @@ msgstr[0] "다음 프린터는 Digital Factory에 연결되어 있지 않습니 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1204,8 +1204,8 @@ msgstr "프린트 모니터링" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory에서 프린트 추적" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory에서 프린트 추적" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2416,8 +2416,8 @@ msgstr "대기열을 원격으로 관리하려면 프린터 펌웨어를 업데 msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "클라우드 프린터용 Webcam 피드는 UltiMaker Cura에서 볼 수 없습니다. '프린터 관리'를 클릭하여 UltiMaker Digital Factory를 방문하고 이 웹캠을 확인하십시오." +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "클라우드 프린터용 Webcam 피드는 UltiMaker Cura에서 볼 수 없습니다. '프린터 관리'를 클릭하여 Ultimaker Digital Factory를 방문하고 이 웹캠을 확인하십시오." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2483,8 +2483,8 @@ msgstr "첫 번째로 사용 가능" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory를 사용하여 어디서든 프린터를 모니터링하십시오" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory를 사용하여 어디서든 프린터를 모니터링하십시오" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5812,8 +5812,8 @@ msgstr "내 프린터" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "UltiMaker Digital Factory의 프린터를 모니터링하십시오." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Ultimaker Digital Factory의 프린터를 모니터링하십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6246,7 +6246,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the UltiMaker " "Digital Factory to establish a connection." -msgstr "해당 프린터가 사용자의 계정에 연결되어 있지 않습니다. UltiMaker Digital Factory에 방문하여 연결을 설정하십시오." +msgstr "해당 프린터가 사용자의 계정에 연결되어 있지 않습니다. Ultimaker Digital Factory에 방문하여 연결을 설정하십시오." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6483,7 +6483,7 @@ msgstr "디지털 라이브러리와 연결하여 Cura에서 디지털 라이브 #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "UltiMaker 디지털 라이브러리" #: /GCodeProfileReader/plugin.json diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index 38df06bbbc..b681e5cd06 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -1064,8 +1064,8 @@ msgstr[1] "Deze printers zijn niet gekoppeld aan de Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1212,8 +1212,8 @@ msgstr "Printen in de gaten houden" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Volg het printen in UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Volg het printen in Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2434,8 +2434,8 @@ msgstr "Werk de firmware van uw printer bij om de wachtrij op afstand te beheren msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "Vanuit UltiMaker Cura kunt u de webcamfeeds voor cloudprinters niet bekijken. Klik op 'Printer beheren' om UltiMaker Digital Factory te bezoeken en deze" +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "Vanuit UltiMaker Cura kunt u de webcamfeeds voor cloudprinters niet bekijken. Klik op 'Printer beheren' om Ultimaker Digital Factory te bezoeken en deze" " webcam te bekijken." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2502,8 +2502,8 @@ msgstr "Eerst beschikbaar" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Monitor uw printers overal met UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Monitor uw printers overal met Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5853,8 +5853,8 @@ msgstr "Mijn printers" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Volg uw printers in UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Volg uw printers in Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6294,7 +6294,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Deze printer is niet gekoppeld aan uw account. Ga naar de UltiMaker Digital Factory om een verbinding tot stand te brengen." +msgstr "Deze printer is niet gekoppeld aan uw account. Ga naar de Ultimaker Digital Factory om een verbinding tot stand te brengen." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6531,8 +6531,8 @@ msgstr "Maakt verbinding met de digitale bibliotheek, zodat Cura bestanden kan o #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" -msgstr "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" +msgstr "Ultimaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index b55941b363..a7f128a4c3 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -1023,7 +1023,7 @@ msgstr[1] "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 @@ -1166,7 +1166,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 @@ -2328,7 +2328,7 @@ msgstr "Zaktualizuj oprogramowanie drukarki, aby zdalnie zarządzać kolejką." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2395,7 +2395,7 @@ msgstr "Pierwsza dostępna" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -5627,7 +5627,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 @@ -6036,7 +6036,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." +msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 @@ -6266,7 +6266,7 @@ msgstr "" #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "" #: /GCodeProfileReader/plugin.json diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index 46b4614697..1a925b1d99 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -971,8 +971,8 @@ msgstr[1] "Estas impressoras não estão ligadas à Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1117,8 +1117,8 @@ msgstr "Monitorar impressão" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Rastrear a impressão na UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Rastrear a impressão na Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2238,8 +2238,8 @@ msgstr "Por favor atualize o firmware de sua impressora parar gerir a fila remot #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "Fontes de webcam para impressoras de nuvem não podem ser vistas pelo UltiMaker Cura. Clique em \"Gerenciar impressora\" para visitar a UltiMaker Digital Factory e visualizar esta webcam." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "Fontes de webcam para impressoras de nuvem não podem ser vistas pelo UltiMaker Cura. Clique em \"Gerenciar impressora\" para visitar a Ultimaker Digital Factory e visualizar esta webcam." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2304,8 +2304,8 @@ msgstr "Primeira disponível" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Monitora suas impressoras de todo lugar usando a UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Monitora suas impressoras de todo lugar usando a Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5468,8 +5468,8 @@ msgstr "Minhas impressoras" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Monitora as impressoras na UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Monitora as impressoras na Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -5875,8 +5875,8 @@ msgstr "A impressora de nuvem está offline. Por favor verifique se a impressora #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." -msgstr "Esta impressora não está vinculada à sua conta. Por favor visite a UltiMaker Digital Factory para estabelecer uma conexão." +msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." +msgstr "Esta impressora não está vinculada à sua conta. Por favor visite a Ultimaker Digital Factory para estabelecer uma conexão." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6105,7 +6105,7 @@ msgstr "Conecta-se à Digital Library, permitindo ao Cura abrir arquivos dela e #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "Digital Library da UltiMaker" #: /GCodeProfileReader/plugin.json @@ -6988,8 +6988,8 @@ msgstr "Estágio de Preparação" #~ msgstr "Envia e monitora trabalhos de impressão de qualquer lugar usando sua conta UltiMaker." #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to UltiMaker Digital Factory" -#~ msgstr "Conectar à UltiMaker Digital Factory" +#~ msgid "Connect to Ultimaker Digital Factory" +#~ msgstr "Conectar à Ultimaker Digital Factory" #~ msgctxt "@info" #~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." @@ -7120,11 +7120,11 @@ msgstr "Estágio de Preparação" #~ msgstr "Impressoras adicionadas da Digital Factory:
      {}
    " #~ msgctxt "info:status" -#~ msgid "
      {}
    To establish a connection, please visit the UltiMaker Digital Factory." +#~ msgid "
      {}
    To establish a connection, please visit the Ultimaker Digital Factory." #~ msgstr "
      {}
    Para estabelecer uma conexão, por favor visite a Ultimaker Digital Factory." #~ msgctxt "@label ({} is printer name)" -#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit UltiMaker Digital Factory.

    Are you sure you want to remove {} temporarily?" +#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit Ultimaker Digital Factory.

    Are you sure you want to remove {} temporarily?" #~ msgstr "{} será removida até a próxima sincronização de conta.
    Para remover {} permanentemente, visite a Ultimaker Digital Factory.

    Tem certeza que deseja remover {} temporariamente?" #~ msgctxt "@label" @@ -7160,8 +7160,8 @@ msgstr "Estágio de Preparação" #~ msgstr "A webcam não está disponível porque você está monitorando uma impressora de nuvem." #~ msgctxt "@button" -#~ msgid "UltiMaker Digital Factory" -#~ msgstr "UltiMaker Digital Factory" +#~ msgid "Ultimaker Digital Factory" +#~ msgstr "Ultimaker Digital Factory" #~ msgctxt "@text:window, %1 is a profile name" #~ msgid "" diff --git a/resources/i18n/pt_PT/cura.po b/resources/i18n/pt_PT/cura.po index d7db1879b1..69341486e2 100644 --- a/resources/i18n/pt_PT/cura.po +++ b/resources/i18n/pt_PT/cura.po @@ -1068,8 +1068,8 @@ msgstr[1] "Estas impressoras não estão associadas à Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1216,8 +1216,8 @@ msgstr "Monitorizar a impressão" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Controle a impressão no UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Controle a impressão no Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2439,7 +2439,7 @@ msgstr "Atualize o firmware da impressora para gerir a fila remotamente." msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgstr "Não é possível visualizar os feeds das câmaras das impressoras na cloud a partir do UltiMaker Cura. Clique em \"Gerir impressora\" para visitar o UltiMaker" " Digital Factory e ver esta câmara." @@ -2507,8 +2507,8 @@ msgstr "Primeira disponível" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Monitorize as suas impressoras de qualquer lugar usando a UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Monitorize as suas impressoras de qualquer lugar usando a Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5856,8 +5856,8 @@ msgstr "As minhas impressoras" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Monitorize as impressoras no UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Monitorize as impressoras no Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6297,7 +6297,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Esta impressora não está associada à sua conta. Visite a UltiMaker Digital Factory para estabelecer uma ligação." +msgstr "Esta impressora não está associada à sua conta. Visite a Ultimaker Digital Factory para estabelecer uma ligação." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6534,7 +6534,7 @@ msgstr "Liga à Biblioteca Digital, permitindo ao Cura abrir ficheiros da Biblio #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "Biblioteca Digital UltiMaker" #: /GCodeProfileReader/plugin.json diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index 75be181d9c..4b42e918af 100644 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -1066,8 +1066,8 @@ msgstr[2] "Эти принтеры не подключены Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1216,8 +1216,8 @@ msgstr "Мониторинг печати" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "Отслеживайте печать в UltiMaker Digital Factory" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Отслеживайте печать в Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2439,9 +2439,9 @@ msgstr "Для удаленного управления очередью нео msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." msgstr "Каналы веб-камеры для облачных принтеров невозможно просмотреть из UltiMaker Cura. Щелкните «Управление принтером», чтобы просмотреть эту веб-камеру на" -" сайте UltiMaker Digital Factory." +" сайте Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2507,8 +2507,8 @@ msgstr "Первое доступное" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "Следите за своими принтерами откуда угодно с помощью UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Следите за своими принтерами откуда угодно с помощью Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5862,8 +5862,8 @@ msgstr "Мои принтеры" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "Следите за своими принтерами в UltiMaker Digital Factory." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Следите за своими принтерами в Ultimaker Digital Factory." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6299,7 +6299,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Этот принтер не связан с вашей учетной записью. Посетите сайт UltiMaker Digital Factory, чтобы установить привязку." +msgstr "Этот принтер не связан с вашей учетной записью. Посетите сайт Ultimaker Digital Factory, чтобы установить привязку." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6536,7 +6536,7 @@ msgstr "Подключается к цифровой библиотеке, по #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "Цифровая библиотека UltiMaker" #: /GCodeProfileReader/plugin.json diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index 2106a709b3..178b28a8be 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -1064,8 +1064,8 @@ msgstr[1] "Bu yazıcılar Digital Factory ile bağlantılandırılmamış:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1212,8 +1212,8 @@ msgstr "Baskı izleme" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory'de baskıyı izleyin" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory'de baskıyı izleyin" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2433,8 +2433,8 @@ msgstr "Kuyruğu uzaktan yönetmek için lütfen yazıcının donanım yazılım msgctxt "@info" msgid "" "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click " -"\"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "Bulut yazıcıları için web kamerası akışları UltiMaker Cura'dan görüntülenemez. UltiMaker Digital Factory'i ziyaret etmek ve bu web kamerasını görüntülemek" +"\"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "Bulut yazıcıları için web kamerası akışları UltiMaker Cura'dan görüntülenemez. Ultimaker Digital Factory'i ziyaret etmek ve bu web kamerasını görüntülemek" " için \"Yazıcıyı Yönet\"i tıklayın." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 @@ -2501,8 +2501,8 @@ msgstr "İlk kullanılabilen" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory'yi kullanarak yazıcılarınızı her yerden izleyin" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory'yi kullanarak yazıcılarınızı her yerden izleyin" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5846,8 +5846,8 @@ msgstr "Yazıcılarım" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "UltiMaker Digital Factory'de yazıcıları izleyin." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "Ultimaker Digital Factory'de yazıcıları izleyin." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6284,7 +6284,7 @@ msgctxt "@status" msgid "" "This printer is not linked to your account. Please visit the Ultimaker " "Digital Factory to establish a connection." -msgstr "Yazıcı hesabınızla bağlanmamış. Bağlantı kurmak için lütfen UltiMaker Digital Factory bölümünü ziyaret edin." +msgstr "Yazıcı hesabınızla bağlanmamış. Bağlantı kurmak için lütfen Ultimaker Digital Factory bölümünü ziyaret edin." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6521,8 +6521,8 @@ msgstr "Digital Library'ye bağlanarak Cura'nın Digital Library'deki dosyaları #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" -msgstr "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" +msgstr "Ultimaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index b15dd34eea..d7f2b8ce18 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -1021,8 +1021,8 @@ msgstr[0] "这些打印机未链接到 Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1166,8 +1166,8 @@ msgstr "监控打印" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "在 UltiMaker Digital Factory 中跟踪打印" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "在 Ultimaker Digital Factory 中跟踪打印" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2330,8 +2330,8 @@ msgstr "请及时更新打印机固件以远程管理打印队列。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "无法从 UltiMaker Cura 中查看云打印机的网络摄像头馈送。请单击“管理打印机”以访问 UltiMaker Digital Factory 并查看此网络摄像头。" +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "无法从 UltiMaker Cura 中查看云打印机的网络摄像头馈送。请单击“管理打印机”以访问 Ultimaker Digital Factory 并查看此网络摄像头。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2397,8 +2397,8 @@ msgstr "第一个可用" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" -msgstr "使用 UltiMaker Digital Factory 从任意位置监控打印机" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" +msgstr "使用 Ultimaker Digital Factory 从任意位置监控打印机" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 msgctxt "@button" @@ -5627,8 +5627,8 @@ msgstr "我的打印机" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "在 UltiMaker Digital Factory 中监控打印机。" +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "在 Ultimaker Digital Factory 中监控打印机。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6039,8 +6039,8 @@ msgstr "云打印机离线。请检查打印机是否已开启并连接到 Inter #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." -msgstr "此打印机未链接到您的帐户。请访问 UltiMaker Digital Factory 以建立连接。" +msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." +msgstr "此打印机未链接到您的帐户。请访问 Ultimaker Digital Factory 以建立连接。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6269,8 +6269,8 @@ msgstr "连接到 Digital Library,以允许 Cura 从 Digital Library 打开文 #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" -msgstr "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" +msgstr "Ultimaker Digital Library" #: /GCodeProfileReader/plugin.json msgctxt "description" @@ -7151,8 +7151,8 @@ msgstr "准备阶段" #~ msgstr "使用您的 UltiMaker account 帐户从任何地方发送和监控打印作业。" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to UltiMaker Digital Factory" -#~ msgstr "连接到 UltiMaker Digital Factory" +#~ msgid "Connect to Ultimaker Digital Factory" +#~ msgstr "连接到 Ultimaker Digital Factory" #~ msgctxt "@info" #~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." @@ -7280,11 +7280,11 @@ msgstr "准备阶段" #~ msgstr "从 Digital Factory 添加的打印机:
      {}
    " #~ msgctxt "info:status" -#~ msgid "
      {}
    To establish a connection, please visit the UltiMaker Digital Factory." +#~ msgid "
      {}
    To establish a connection, please visit the Ultimaker Digital Factory." #~ msgstr "
      {}
    要建立连接,请访问 Ultimaker Digital Factory。" #~ msgctxt "@label ({} is printer name)" -#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit UltiMaker Digital Factory.

    Are you sure you want to remove {} temporarily?" +#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit Ultimaker Digital Factory.

    Are you sure you want to remove {} temporarily?" #~ msgstr "{} 将被删除,直至下次帐户同步为止。
    要永久删除 {},请访问 Ultimaker Digital Factory

    是否确实要暂时删除 {}?" #~ msgctxt "@label" @@ -7320,8 +7320,8 @@ msgstr "准备阶段" #~ msgstr "网络摄像头不可用,因为您正在监控云打印机。" #~ msgctxt "@button" -#~ msgid "UltiMaker Digital Factory" -#~ msgstr "UltiMaker Digital Factory" +#~ msgid "Ultimaker Digital Factory" +#~ msgstr "Ultimaker Digital Factory" #~ msgctxt "@text:window, %1 is a profile name" #~ msgid "" diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po index 9ac3b8d621..9337dbb04d 100644 --- a/resources/i18n/zh_TW/cura.po +++ b/resources/i18n/zh_TW/cura.po @@ -1021,8 +1021,8 @@ msgstr[0] "印表機未連到 Digital Factory:" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:22 #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py:422 msgctxt "info:name" -msgid "UltiMaker Digital Factory" -msgstr "UltiMaker Digital Factory" +msgid "Ultimaker Digital Factory" +msgstr "Ultimaker Digital Factory" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py:28 #, python-brace-format @@ -1166,8 +1166,8 @@ msgstr "監控列印" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:278 msgctxt "@action:tooltip" -msgid "Track the print in UltiMaker Digital Factory" -msgstr "在UltiMaker Digital Factory中追蹤您的列印" +msgid "Track the print in Ultimaker Digital Factory" +msgstr "在Ultimaker Digital Factory中追蹤您的列印" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py:298 #, python-brace-format @@ -2331,8 +2331,8 @@ msgstr "請更新你印表機的韌體以便遠端管理工作隊列。" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:287 msgctxt "@info" -msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam." -msgstr "網路攝影機無法從UltiMaker Cura中瀏覽,請點擊\"管理列印機\"並從UltiMaker Digital Factory中瀏覽網路攝影機." +msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura. Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam." +msgstr "網路攝影機無法從UltiMaker Cura中瀏覽,請點擊\"管理列印機\"並從Ultimaker Digital Factory中瀏覽網路攝影機." #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml:347 msgctxt "@label:status" @@ -2398,7 +2398,7 @@ msgstr "可用的第一個" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:117 msgctxt "@info" -msgid "Monitor your printers from everywhere using UltiMaker Digital Factory" +msgid "Monitor your printers from everywhere using Ultimaker Digital Factory" msgstr "" #: /Users/c.lamboo/ultimaker/Cura/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml:129 @@ -5623,8 +5623,8 @@ msgstr "我的列印機" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:34 msgctxt "@tooltip:button" -msgid "Monitor printers in UltiMaker Digital Factory." -msgstr "從UltiMaker Digital Factory中監控我的列印機." +msgid "Monitor printers in Ultimaker Digital Factory." +msgstr "從Ultimaker Digital Factory中監控我的列印機." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml:41 msgctxt "@tooltip:button" @@ -6035,8 +6035,8 @@ msgstr "雲端印表機為離線狀態。請檢查印表機是否已開機並連 #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:51 msgctxt "@status" -msgid "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection." -msgstr "此印表機未連接到你的帳號。請前往 UltiMaker Digital Factory 建立連接。" +msgid "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection." +msgstr "此印表機未連接到你的帳號。請前往 Ultimaker Digital Factory 建立連接。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/PrinterSelector/MachineSelector.qml:56 msgctxt "@status" @@ -6265,7 +6265,7 @@ msgstr "連結至\"數位博物館\",允許Cura從\"數位博物館\"打開或 #: /DigitalLibrary/plugin.json msgctxt "name" -msgid "UltiMaker Digital Library" +msgid "Ultimaker Digital Library" msgstr "UltiMaker 數位博物館" #: /GCodeProfileReader/plugin.json @@ -7126,8 +7126,8 @@ msgstr "準備介面" #~ msgstr "利用你的 UltiMaker 帳號在任何地方傳送和監控列印作業。" #~ msgctxt "@info:status Ultimaker Cloud should not be translated." -#~ msgid "Connect to UltiMaker Digital Factory" -#~ msgstr "連接到 UltiMaker Digital Factory" +#~ msgid "Connect to Ultimaker Digital Factory" +#~ msgstr "連接到 Ultimaker Digital Factory" #~ msgctxt "@info" #~ msgid "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." @@ -7255,11 +7255,11 @@ msgstr "準備介面" #~ msgstr "從 Digital Factory 新增印表機:
      {}
    " #~ msgctxt "info:status" -#~ msgid "
      {}
    To establish a connection, please visit the UltiMaker Digital Factory." +#~ msgid "
      {}
    To establish a connection, please visit the Ultimaker Digital Factory." #~ msgstr "
      {}
    要建立連線,請前往 Ultimaker Digital Factory。" #~ msgctxt "@label ({} is printer name)" -#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit UltiMaker Digital Factory.

    Are you sure you want to remove {} temporarily?" +#~ msgid "{} will be removed until the next account sync.
    To remove {} permanently, visit Ultimaker Digital Factory.

    Are you sure you want to remove {} temporarily?" #~ msgstr "直到下次帳號同步前 {} 將被移除。
    要永久移除 {},請前往 Ultimaker Digital Factory

    你確定要暫時移除 {} 嗎?" #~ msgctxt "@label" @@ -7295,8 +7295,8 @@ msgstr "準備介面" #~ msgstr "由於你正在監控一台雲端印表機,因此無法使用網路攝影機。" #~ msgctxt "@button" -#~ msgid "UltiMaker Digital Factory" -#~ msgstr "UltiMaker Digital Factory" +#~ msgid "Ultimaker Digital Factory" +#~ msgstr "Ultimaker Digital Factory" #~ msgctxt "@text:window, %1 is a profile name" #~ msgid "" diff --git a/resources/qml/Account/UserOperations.qml b/resources/qml/Account/UserOperations.qml index 40612d87ac..52d9cfc344 100644 --- a/resources/qml/Account/UserOperations.qml +++ b/resources/qml/Account/UserOperations.qml @@ -93,7 +93,7 @@ Column width: parent.width height: UM.Theme.getSize("account_button").height - text: "UltiMaker Digital Factory" + text: "Ultimaker Digital Factory" onClicked: Qt.openUrlExternally(CuraApplication.ultimakerDigitalFactoryUrl + "?utm_source=cura&utm_medium=software&utm_campaign=menu-visit-DF") fixedWidthMode: false } diff --git a/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml b/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml index bdb790a79f..f13ca28447 100644 --- a/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml +++ b/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml @@ -31,7 +31,7 @@ Popup { displayName: catalog.i18nc("@label:button", "My printers"), thumbnail: UM.Theme.getIcon("PrinterTriple", "high"), - description: catalog.i18nc("@tooltip:button", "Monitor printers in UltiMaker Digital Factory."), + description: catalog.i18nc("@tooltip:button", "Monitor printers in Ultimaker Digital Factory."), link: "https://digitalfactory.ultimaker.com/app/printers?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printers", permissionsRequired: ["digital-factory.printer.read"] }, diff --git a/resources/qml/PrinterSelector/MachineSelector.qml b/resources/qml/PrinterSelector/MachineSelector.qml index 2403d3d573..b8b27049f6 100644 --- a/resources/qml/PrinterSelector/MachineSelector.qml +++ b/resources/qml/PrinterSelector/MachineSelector.qml @@ -65,7 +65,7 @@ Cura.ExpandablePopup } else { - return catalog.i18nc("@status", "This printer is not linked to your account. Please visit the UltiMaker Digital Factory to establish a connection.") + return catalog.i18nc("@status", "This printer is not linked to your account. Please visit the Ultimaker Digital Factory to establish a connection.") } } else From f4edc3a5d6a09b199a76499bf9741adda53e7c73 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Tue, 29 Nov 2022 15:28:13 +0100 Subject: [PATCH 180/185] Update translation string Cura-9808 --- resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml b/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml index c737031e9d..2e02e35c46 100644 --- a/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml +++ b/resources/qml/WelcomePages/AddUltimakerOrThirdPartyPrinter.qml @@ -61,7 +61,7 @@ Control id: thrirdPartyPrinterCard Layout.alignment: Qt.AlignBottom onClicked: goToThirdPartyPrinter - text: catalog.i18nc("@button", "UltiMaker") + text: catalog.i18nc("@button", "Non UltiMaker printer") imageSource: UM.Theme.getImage("third_party_printer") } } From 934a036e3d68ece45c598f5a1b8cc7a4ed5c0b40 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Tue, 29 Nov 2022 15:28:48 +0100 Subject: [PATCH 181/185] Update resources/i18n/cs_CZ/cura.po Cura-9808 --- resources/i18n/cs_CZ/cura.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/i18n/cs_CZ/cura.po b/resources/i18n/cs_CZ/cura.po index 4d714496dc..fc1cf71481 100644 --- a/resources/i18n/cs_CZ/cura.po +++ b/resources/i18n/cs_CZ/cura.po @@ -702,7 +702,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:122 msgctxt "@action:button" msgid "Send crash report to UltiMaker" -msgstr "Poslat záznam o pádu do UltiMakeru" +msgstr "Poslat záznam o pádu do UltiMaker" #: /Users/c.lamboo/ultimaker/Cura/cura/CrashHandler.py:125 msgctxt "@action:button" From 8a1f94c832b4760d7412a1648ec57d45fe76e749 Mon Sep 17 00:00:00 2001 From: jspijker Date: Tue, 29 Nov 2022 16:23:59 +0100 Subject: [PATCH 182/185] Fix format-definition-paired-coordinate-array --- .../src/printerlinter/formatters/def_json_formatter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/printer-linter/src/printerlinter/formatters/def_json_formatter.py b/printer-linter/src/printerlinter/formatters/def_json_formatter.py index f839594ea5..f99fe5bfb4 100644 --- a/printer-linter/src/printerlinter/formatters/def_json_formatter.py +++ b/printer-linter/src/printerlinter/formatters/def_json_formatter.py @@ -51,8 +51,8 @@ class DefJsonFormatter(FileFormatter): content = single_value_list.sub(r"\1 [ \3 ]\5", content) if self._settings["format"].get("format-definition-paired-coordinate-array", True): - paired_coordinates = re.compile(r"(\[)\s+(-?\d*),\s*(-?\d*)\s*(\])") - content = paired_coordinates.sub(r"\1 \2, \3 \4", content) + paired_coordinates = re.compile(r"(\s*\[)\s*([-\d\.]+),\s*([-\d\.]+)[\s]*(\])") + content = paired_coordinates.sub(r"\1\2, \3\4", content) file.write_text(content) From c0d92e90f833d2e15008e084f3c13e16eddf729b Mon Sep 17 00:00:00 2001 From: jspijker Date: Tue, 29 Nov 2022 17:29:44 +0100 Subject: [PATCH 183/185] Fix extruders formatting/diagnosing --- .../src/printerlinter/linters/defintion.py | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/printer-linter/src/printerlinter/linters/defintion.py b/printer-linter/src/printerlinter/linters/defintion.py index 909265e829..dc272ccd9c 100644 --- a/printer-linter/src/printerlinter/linters/defintion.py +++ b/printer-linter/src/printerlinter/linters/defintion.py @@ -17,6 +17,12 @@ class Definition(Linter): self._content = self._file.read_text() self._loadBasePrinterSettings() + @property + def base_def(self): + if "fdmextruder" in self._definitions: + return "fdmextruder" + return "fdmprinter" + def check(self) -> Iterator[Diagnostic]: if self._settings["checks"].get("diagnostic-definition-redundant-override", False): for check in self.checkRedefineOverride(): @@ -33,7 +39,7 @@ class Definition(Linter): """ Checks if definition file overrides its parents settings with the same value. """ definition_name = list(self._definitions.keys())[0] definition = self._definitions[definition_name] - if "overrides" in definition and definition_name != "fdmprinter": + if "overrides" in definition and definition_name not in ("fdmprinter", "fdmextruder"): for key, value_dict in definition["overrides"].items(): is_redefined, value, parent = self._isDefinedInParent(key, value_dict, definition['inherits']) if is_redefined: @@ -64,7 +70,10 @@ class Definition(Linter): # Load parent definition if it exists if "inherits" in self._definitions[definition_name]: - parent_file = definition_file.parent.joinpath(f"{self._definitions[definition_name]['inherits']}.def.json") + if self._definitions[definition_name]['inherits'] in ("fdmextruder", "fdmprinter"): + parent_file = definition_file.parent.parent.joinpath("definitions", f"{self._definitions[definition_name]['inherits']}.def.json") + else: + parent_file = definition_file.parent.joinpath(f"{self._definitions[definition_name]['inherits']}.def.json") self._loadDefinitionFiles(parent_file) def _isDefinedInParent(self, key, value_dict, inherits_from): @@ -72,7 +81,10 @@ class Definition(Linter): return self._isDefinedInParent(key, value_dict, self._definitions[inherits_from]["inherits"]) parent = self._definitions[inherits_from]["overrides"] - is_number = self._definitions["fdmprinter"]["overrides"][key] in ("float", "int") + if key not in self._definitions[self.base_def]["overrides"]: + is_number = False + else: + is_number = self._definitions[self.base_def]["overrides"][key]["type"] in ("float", "int") for value in value_dict.values(): if key in parent: check_values = [cv for cv in [parent[key].get("default_value", None), parent[key].get("value", None)] if cv is not None] @@ -99,9 +111,9 @@ class Definition(Linter): def _loadBasePrinterSettings(self): """ TODO @Jelle please explain why this """ settings = {} - for k, v in self._definitions["fdmprinter"]["settings"].items(): + for k, v in self._definitions[self.base_def]["settings"].items(): self._getSetting(k, v, settings) - self._definitions["fdmprinter"] = {"overrides": settings} + self._definitions[self.base_def] = {"overrides": settings} def _getSetting(self, name, setting, settings) -> None: if "children" in setting: From fb917a88fb20db0b9aeb624cd53068da508e702c Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 29 Nov 2022 20:36:04 +0100 Subject: [PATCH 184/185] Don't format Something seems to be broken --- .github/workflows/printer-linter-format.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/printer-linter-format.yml b/.github/workflows/printer-linter-format.yml index 9fb5a1c584..d146d080de 100644 --- a/.github/workflows/printer-linter-format.yml +++ b/.github/workflows/printer-linter-format.yml @@ -35,9 +35,9 @@ jobs: if: env.GIT_DIFF && !env.MATCHED_FILES run: pip install -r .github/workflows/requirements-printer-linter.txt - - name: Format file - if: env.GIT_DIFF && !env.MATCHED_FILES - run: python printer-linter/src/terminal.py --format ${{ env.GIT_DIFF_FILTERED }} +# - name: Format file +# if: env.GIT_DIFF && !env.MATCHED_FILES +# run: python printer-linter/src/terminal.py --format ${{ env.GIT_DIFF_FILTERED }} - uses: stefanzweifel/git-auto-commit-action@v4 if: env.GIT_DIFF && !env.MATCHED_FILES From d377adead49d773e794ecde90f4fa43f15b97388 Mon Sep 17 00:00:00 2001 From: Anson Liu Date: Tue, 29 Nov 2022 14:53:23 -0500 Subject: [PATCH 185/185] Update dxu_umo.def.json Removed redundant nozzle size and filament diameter already specified in parent. --- resources/definitions/dxu_umo.def.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/resources/definitions/dxu_umo.def.json b/resources/definitions/dxu_umo.def.json index be40747b6e..715b1ada90 100644 --- a/resources/definitions/dxu_umo.def.json +++ b/resources/definitions/dxu_umo.def.json @@ -17,12 +17,6 @@ "machine_nozzle_cool_down_speed": { "default_value": 0.8 }, - "machine_nozzle_size": { - "default_value": 0.4 - }, - "material_diameter": { - "default_value": 1.75 - }, "machine_start_gcode" : { "value": "\"\" if machine_gcode_flavor == \"UltiGCode\" else \"; Script based on an original created by tjjfvi (https://github.com/tjjfvi)\\n; An up-to-date version of the tjjfvi's original script can be found\\n; here: https://csi.t6.fyi/\\n; Note - This script will only work in Cura V4.2 and above!\\n; --- Global Settings\\n; layer_height = {layer_height}\\n; smooth_spiralized_contours = {smooth_spiralized_contours}\\n; magic_mesh_surface_mode = {magic_mesh_surface_mode}\\n; machine_extruder_count = {machine_extruder_count}\\n; --- Single Extruder Settings\\n; speed_z_hop = {speed_z_hop}\\n; retraction_amount = {retraction_amount}\\n; retraction_hop = {retraction_hop}\\n; retraction_hop_enabled = {retraction_hop_enabled}\\n; retraction_enable = {retraction_enable}\\n; retraction_speed = {retraction_speed}\\n; retraction_retract_speed = {retraction_retract_speed}\\n; retraction_prime_speed = {retraction_prime_speed}\\n; speed_travel = {speed_travel}\\n\\nM355 S1 P25;turn on case light\\n\\n;material_bed_temperature={material_bed_temperature} material_print_temperature={material_print_temperature} material_print_temperature_layer_0={material_print_temperature_layer_0}\\nM190 S{material_bed_temperature_layer_0}\\nG21 ;metric values\\nG90 ;absolute positioning\\nM82 ;set extruder to absolute mode\\nM107 ;start with the fan off\\nM200 D0 T{initial_extruder_nr} ;reset filament diameter\\nG28 ;home all\\nT{initial_extruder_nr} ;switch to the first nozzle used for print\\nM104 T{initial_extruder_nr} S{material_standby_temperature, initial_extruder_nr}\\nG0 X25 Y20 F7200 ;change Y20 to Y0 ansonl\\nG0 Z20 F2400\\nM109 T{initial_extruder_nr} S{material_print_temperature_layer_0, initial_extruder_nr}\\nG0 X210 Y0 F7200\\nG92 E-12.0 ; increase purge 6.5 to 12\\nG1 E0 F200 ;purge nozzle ;change F45 to F200 like ultimaker code ansonl\\nG1 E-6.5 F1500\\nG1 E0 F1500\\nG1 Y50 F9000 ;add quick movement to Y50 like ultimaker code ansonl\\nM400 ;finish all moves\\nT{initial_extruder_nr}\\n;end of startup sequence\\n\\nM355 S1 P50;turn on case light\"" },

    +X`H6l~J}d#>*A`@b7N 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 Date: Tue, 29 Nov 2022 15:19:14 +0100 Subject: [PATCH 177/185] Change string to use the "UltiMaker" brand name CURA-9793 --- resources/i18n/cs_CZ/cura.po | 2 +- resources/i18n/cura.pot | 2 +- resources/i18n/es_ES/cura.po | 2 +- resources/i18n/fi_FI/cura.po | 2 +- resources/i18n/fr_FR/cura.po | 2 +- resources/i18n/hu_HU/cura.po | 2 +- resources/i18n/it_IT/cura.po | 2 +- resources/i18n/ja_JP/cura.po | 2 +- resources/i18n/nl_NL/cura.po | 2 +- resources/i18n/pl_PL/cura.po | 2 +- resources/i18n/pt_BR/cura.po | 2 +- resources/i18n/pt_PT/cura.po | 2 +- resources/i18n/ru_RU/cura.po | 2 +- resources/i18n/tr_TR/cura.po | 2 +- resources/i18n/zh_CN/cura.po | 2 +- resources/i18n/zh_TW/cura.po | 2 +- 16 files changed, 16 insertions(+), 16 deletions(-) diff --git a/resources/i18n/cs_CZ/cura.po b/resources/i18n/cs_CZ/cura.po index e2d0ff0ffe..d6eade5162 100644 --- a/resources/i18n/cs_CZ/cura.po +++ b/resources/i18n/cs_CZ/cura.po @@ -5465,7 +5465,7 @@ msgstr "Komplexní řešení pro 3D tisk z taveného filamentu." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" "Cura vyvíjí Ultimaker B.V. ve spolupráci s komunitou.\n" diff --git a/resources/i18n/cura.pot b/resources/i18n/cura.pot index 3acce5bf81..70bdb20755 100644 --- a/resources/i18n/cura.pot +++ b/resources/i18n/cura.pot @@ -5635,7 +5635,7 @@ msgstr "" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by UltiMaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" diff --git a/resources/i18n/es_ES/cura.po b/resources/i18n/es_ES/cura.po index 82c8421df7..3285efcd15 100644 --- a/resources/i18n/es_ES/cura.po +++ b/resources/i18n/es_ES/cura.po @@ -5669,7 +5669,7 @@ msgstr "Solución completa para la impresión 3D de filamento fundido." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "UltiMaker B.V. ha desarrollado Cura en cooperación con la comunidad.\nCura se enorgullece de utilizar los siguientes proyectos de código abierto:" diff --git a/resources/i18n/fi_FI/cura.po b/resources/i18n/fi_FI/cura.po index e97704b4d9..0eddbae3e3 100644 --- a/resources/i18n/fi_FI/cura.po +++ b/resources/i18n/fi_FI/cura.po @@ -5421,7 +5421,7 @@ msgstr "Kokonaisvaltainen sulatettavan tulostuslangan 3D-tulostusratkaisu." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" "Cura-ohjelman on kehittänyt Ultimaker B.V. yhteistyössä käyttäjäyhteisön kanssa.\n" diff --git a/resources/i18n/fr_FR/cura.po b/resources/i18n/fr_FR/cura.po index 776f8b53a9..bff7de31dd 100644 --- a/resources/i18n/fr_FR/cura.po +++ b/resources/i18n/fr_FR/cura.po @@ -5700,7 +5700,7 @@ msgstr "Solution complète pour l'impression 3D par dépôt de filament fondu." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" "Cura a été développé par Ultimaker B.V. en coopération avec la communauté Ultimaker.\n" diff --git a/resources/i18n/hu_HU/cura.po b/resources/i18n/hu_HU/cura.po index 90252e1197..578c2c76a7 100644 --- a/resources/i18n/hu_HU/cura.po +++ b/resources/i18n/hu_HU/cura.po @@ -5437,7 +5437,7 @@ msgstr "Teljes körű megoldás az olvadószálas 3D-s nyomtatáshoz." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "A Cura-t az UltiMaker B.V fejlesztette ki a közösséggel együttműködésben. A Cura büszkén használja a következő nyílt forráskódú projekteket:" diff --git a/resources/i18n/it_IT/cura.po b/resources/i18n/it_IT/cura.po index d9cfa0c79c..48f301a03d 100644 --- a/resources/i18n/it_IT/cura.po +++ b/resources/i18n/it_IT/cura.po @@ -5666,7 +5666,7 @@ msgstr "Soluzione end-to-end per la stampa 3D con filamento fuso." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "Cura è stato sviluppato da UltiMaker B.V. in cooperazione con la comunità.\nCura è orgogliosa di utilizzare i seguenti progetti open source:" diff --git a/resources/i18n/ja_JP/cura.po b/resources/i18n/ja_JP/cura.po index 7a93c7f5a1..5436aaed05 100644 --- a/resources/i18n/ja_JP/cura.po +++ b/resources/i18n/ja_JP/cura.po @@ -5623,7 +5623,7 @@ msgstr "熱溶解積層型3Dプリンティングのエンドtoエンドソリ #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "CuraはUltiMakerB.Vのコミュニティの協力によって開発され、Curaはオープンソースで使えることを誇りに思います:" diff --git a/resources/i18n/nl_NL/cura.po b/resources/i18n/nl_NL/cura.po index 78f4598d81..38df06bbbc 100644 --- a/resources/i18n/nl_NL/cura.po +++ b/resources/i18n/nl_NL/cura.po @@ -5666,7 +5666,7 @@ msgstr "End-to-end-oplossing voor fused filament 3D-printen." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "Cura is ontwikkeld door UltiMaker B.V. in samenwerking met de community.\nCura maakt met trots gebruik van de volgende opensourceprojecten:" diff --git a/resources/i18n/pl_PL/cura.po b/resources/i18n/pl_PL/cura.po index 4e5f1834a9..b55941b363 100644 --- a/resources/i18n/pl_PL/cura.po +++ b/resources/i18n/pl_PL/cura.po @@ -5438,7 +5438,7 @@ msgstr "Kompletne rozwiązanie do druku przestrzennego." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" "Cura jest rozwijana przez firmę Ultimaker B.V. we współpracy ze społecznością.\n" diff --git a/resources/i18n/pt_BR/cura.po b/resources/i18n/pt_BR/cura.po index 0ec2b0af2f..46b4614697 100644 --- a/resources/i18n/pt_BR/cura.po +++ b/resources/i18n/pt_BR/cura.po @@ -5280,7 +5280,7 @@ msgstr "Solução completa para impressão 3D com filamento fundido." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" "Cura é desenvolvido pela Ultimaker B.V. em cooperação com a comunidade.\n" diff --git a/resources/i18n/pt_PT/cura.po b/resources/i18n/pt_PT/cura.po index acc3ed99de..d7db1879b1 100644 --- a/resources/i18n/pt_PT/cura.po +++ b/resources/i18n/pt_PT/cura.po @@ -5669,7 +5669,7 @@ msgstr "A Solução completa para a impressão 3D por filamento fundido." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "O Cura foi desenvolvido pela UltiMaker B.V. em colaboração com a comunidade.\nO Cura tem o prazer de utilizar os seguintes projetos open source:" diff --git a/resources/i18n/ru_RU/cura.po b/resources/i18n/ru_RU/cura.po index d136bb86d9..75be181d9c 100644 --- a/resources/i18n/ru_RU/cura.po +++ b/resources/i18n/ru_RU/cura.po @@ -5675,7 +5675,7 @@ msgstr "Полное решение для 3D печати методом нап #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "Cura разработана компанией UltiMaker B.V. совместно с сообществом.\nCura использует следующие проекты с открытым исходным кодом:" diff --git a/resources/i18n/tr_TR/cura.po b/resources/i18n/tr_TR/cura.po index 616f09fc7e..2106a709b3 100644 --- a/resources/i18n/tr_TR/cura.po +++ b/resources/i18n/tr_TR/cura.po @@ -5659,7 +5659,7 @@ msgstr "Kaynaşık filaman 3B yazdırma için kalıcı çözüm." #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "Cura, topluluk iş birliği ile UltiMaker B.V. tarafından geliştirilmiştir.\nCura aşağıdaki açık kaynak projelerini gururla kullanmaktadır:" diff --git a/resources/i18n/zh_CN/cura.po b/resources/i18n/zh_CN/cura.po index ab9f22ff97..b15dd34eea 100644 --- a/resources/i18n/zh_CN/cura.po +++ b/resources/i18n/zh_CN/cura.po @@ -5438,7 +5438,7 @@ msgstr "熔丝 3D 打印技术的的端对端解决方案。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" "Cura 由 Ultimaker B.V. 与社区合作开发。\n" diff --git a/resources/i18n/zh_TW/cura.po b/resources/i18n/zh_TW/cura.po index 02f0a7f844..9ac3b8d621 100644 --- a/resources/i18n/zh_TW/cura.po +++ b/resources/i18n/zh_TW/cura.po @@ -5434,7 +5434,7 @@ msgstr "熔絲 3D 列印技術的的端對端解決方案。" #: /Users/c.lamboo/ultimaker/Cura/resources/qml/Dialogs/AboutDialog.qml:87 msgctxt "@info:credit" msgid "" -"Cura is developed by Ultimaker B.V. in cooperation with the community.\n" +"Cura is developed by UltiMaker in cooperation with the community.\n" "Cura proudly uses the following open source projects:" msgstr "" "Cura 由 Ultimaker B.V. 與社群合作開發。\n" From 7efbf6ed1e38c90d49742972bcce7178cd55faf5 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 29 Nov 2022 15:26:15 +0100 Subject: [PATCH 178/185] Translate string CURA-9793 --- plugins/Marketplace/PackageModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Marketplace/PackageModel.py b/plugins/Marketplace/PackageModel.py index 79820f07e9..fa909b4120 100644 --- a/plugins/Marketplace/PackageModel.py +++ b/plugins/Marketplace/PackageModel.py @@ -92,7 +92,7 @@ class PackageModel(QObject): "display_name": display_name, "package_version": package_version, "package_type": package_type, - "description": "The material package associated with the Cura project could not be found on the UltiMaker Marketplace. Use the partial material profile definition stored in the Cura project file at your own risk." + "description": catalog.i18nc("@label:label Ultimaker Marketplace is a brand name, don't translate", "The material package associated with the Cura project could not be found on the Ultimaker Marketplace. Use the partial material profile definition stored in the Cura project file at your own risk.") } package_model = cls(package_data) package_model.setIsMissingPackageInformation(True) From b22fafadbe541cf50b06cb50dbe28fd3941f3bcd Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Tue, 29 Nov 2022 15:26:51 +0100 Subject: [PATCH 179/185] Don't capitalise "M" in "Ultimaker Digital Library" and "Ultimaker Digital Factory" because these are brand names. CURA-9793 --- .../resources/qml/MonitorPrinterCard.qml | 2 +- .../resources/qml/MonitorStage.qml | 2 +- .../src/Cloud/CloudOutputDevice.py | 2 +- .../src/Cloud/CloudOutputDeviceManager.py | 2 +- .../src/Messages/RemovedPrintersMessage.py | 2 +- resources/bundled_packages/cura.json | 2 +- resources/i18n/cs_CZ/cura.po | 38 +++++++++--------- resources/i18n/cura.pot | 12 +++--- resources/i18n/de_DE/cura.po | 24 +++++------ resources/i18n/es_ES/cura.po | 24 +++++------ resources/i18n/fi_FI/cura.po | 14 +++---- resources/i18n/fr_FR/cura.po | 26 ++++++------ resources/i18n/hu_HU/cura.po | 14 +++---- resources/i18n/it_IT/cura.po | 26 ++++++------ resources/i18n/ja_JP/cura.po | 26 ++++++------ resources/i18n/ko_KR/cura.po | 24 +++++------ resources/i18n/nl_NL/cura.po | 26 ++++++------ resources/i18n/pl_PL/cura.po | 14 +++---- resources/i18n/pt_BR/cura.po | 38 +++++++++--------- resources/i18n/pt_PT/cura.po | 22 +++++----- resources/i18n/ru_RU/cura.po | 24 +++++------ resources/i18n/tr_TR/cura.po | 26 ++++++------ resources/i18n/zh_CN/cura.po | 40 +++++++++---------- resources/i18n/zh_TW/cura.po | 36 ++++++++--------- resources/qml/Account/UserOperations.qml | 2 +- .../ApplicationSwitcherPopup.qml | 2 +- .../qml/PrinterSelector/MachineSelector.qml | 2 +- 27 files changed, 236 insertions(+), 236 deletions(-) diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml index 68129eec8f..2488e55bd1 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorPrinterCard.qml @@ -285,7 +285,7 @@ Item { id: cameraDisabledInfo text: catalog.i18nc("@info", "Webcam feeds for cloud printers cannot be viewed from UltiMaker Cura." + - " Click \"Manage printer\" to visit UltiMaker Digital Factory and view this webcam.") + " Click \"Manage printer\" to visit Ultimaker Digital Factory and view this webcam.") target: cameraButton } } diff --git a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml index ff581b0fb9..2a0609dab4 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/MonitorStage.qml @@ -114,7 +114,7 @@ Component UM.Label { anchors.horizontalCenter: parent.horizontalCenter - text: catalog.i18nc("@info", "Monitor your printers from everywhere using UltiMaker Digital Factory") + text: catalog.i18nc("@info", "Monitor your printers from everywhere using Ultimaker Digital Factory") font: UM.Theme.getFont("medium") width: sendToFactoryImage.width wrapMode: Text.WordWrap diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index ae6d212e66..c5c144d273 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -275,7 +275,7 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): message.addAction("monitor print", name=I18N_CATALOG.i18nc("@action:button", "Monitor print"), icon="", - description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in UltiMaker Digital Factory"), + description=I18N_CATALOG.i18nc("@action:tooltip", "Track the print in Ultimaker Digital Factory"), button_align=message.ActionButtonAlignment.ALIGN_RIGHT) df_url = f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent" message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py index edfaafb3b1..5ec0db8a66 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDeviceManager.py @@ -419,7 +419,7 @@ class CloudOutputDeviceManager: machine.setMetaDataEntry(self.META_HOST_GUID, device.clusterData.host_guid) machine.setMetaDataEntry("group_name", device.name) machine.setMetaDataEntry("group_size", device.clusterSize) - digital_factory_string = self.i18n_catalog.i18nc("info:name", "UltiMaker Digital Factory") + digital_factory_string = self.i18n_catalog.i18nc("info:name", "Ultimaker Digital Factory") digital_factory_link = f"{digital_factory_string}" removal_warning_string = self.i18n_catalog.i18nc("@message {printer_name} is replaced with the name of the printer", "{printer_name} will be removed until the next account sync.").format(printer_name = device.name) \ diff --git a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py index 417431d66d..e31615816e 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/RemovedPrintersMessage.py @@ -20,7 +20,7 @@ class RemovedPrintersMessage(Message): ) message_text += "

    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