From 88b04f9e7a3953c5df2cf0b5a186c0f74bcacc1b Mon Sep 17 00:00:00 2001 From: Marius Stanciu Date: Fri, 6 Sep 2019 21:02:08 +0300 Subject: [PATCH] - modified all the FlatCAM tools strings to the new format in which the status is no longer included in the translated strings to make it easier for the future translations - updated POT file with the new strings --- README.md | 1 + flatcamTools/ToolCalculators.py | 36 +- flatcamTools/ToolCutOut.py | 116 ++-- flatcamTools/ToolDblSided.py | 52 +- flatcamTools/ToolFilm.py | 16 +- flatcamTools/ToolMove.py | 21 +- flatcamTools/ToolNonCopperClear.py | 124 ++-- flatcamTools/ToolPDF.py | 19 +- flatcamTools/ToolPaint.py | 147 ++-- flatcamTools/ToolPanelize.py | 47 +- flatcamTools/ToolPcbWizard.py | 31 +- flatcamTools/ToolProperties.py | 6 +- flatcamTools/ToolSolderPaste.py | 90 ++- flatcamTools/ToolSub.py | 42 +- flatcamTools/ToolTransform.py | 74 +- locale_template/strings.pot | 1012 ++++++++++++++-------------- 16 files changed, 991 insertions(+), 843 deletions(-) diff --git a/README.md b/README.md index 532539cc..128e3348 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ CAD program, and create G-Code for Isolation routing. - some fixes and prepared the activity monitor area to receive updated texts - added progress display in status bar for generating CNCJob from Excellon objects - added progress display in status bar for generating CNCJob from Geometry objects +- modified all the FlatCAM tools strings to the new format in which the status is no longer included in the translated strings to make it easier for the future translations - updated POT file with the new strings 5.09.2019 diff --git a/flatcamTools/ToolCalculators.py b/flatcamTools/ToolCalculators.py index b3dae275..98637c95 100644 --- a/flatcamTools/ToolCalculators.py +++ b/flatcamTools/ToolCalculators.py @@ -307,8 +307,8 @@ class ToolCalculator(FlatCAMTool): try: tip_diameter = float(self.tipDia_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return try: @@ -318,8 +318,8 @@ class ToolCalculator(FlatCAMTool): try: half_tip_angle = float(self.tipAngle_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return half_tip_angle /= 2 @@ -330,8 +330,8 @@ class ToolCalculator(FlatCAMTool): try: cut_depth = float(self.cutDepth_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return tool_diameter = tip_diameter + (2 * cut_depth * math.tan(math.radians(half_tip_angle))) @@ -345,8 +345,8 @@ class ToolCalculator(FlatCAMTool): try: mm_val = float(self.mm_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return self.inch_entry.set_value('%.6f' % (mm_val / 25.4)) @@ -358,8 +358,8 @@ class ToolCalculator(FlatCAMTool): try: inch_val = float(self.inch_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return self.mm_entry.set_value('%.6f' % (inch_val * 25.4)) @@ -372,8 +372,8 @@ class ToolCalculator(FlatCAMTool): try: length = float(self.pcblength_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return try: @@ -383,8 +383,8 @@ class ToolCalculator(FlatCAMTool): try: width = float(self.pcbwidth_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return try: @@ -394,8 +394,8 @@ class ToolCalculator(FlatCAMTool): try: density = float(self.cdensity_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return try: @@ -405,8 +405,8 @@ class ToolCalculator(FlatCAMTool): try: copper = float(self.growth_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return calculated_current = (length * width * density) * 0.0021527820833419 diff --git a/flatcamTools/ToolCutOut.py b/flatcamTools/ToolCutOut.py index c0df6b84..ed3b32ff 100644 --- a/flatcamTools/ToolCutOut.py +++ b/flatcamTools/ToolCutOut.py @@ -368,11 +368,12 @@ class CutOut(FlatCAMTool): cutout_obj = self.app.collection.get_by_name(str(name)) except Exception as e: log.debug("CutOut.on_freeform_cutout() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), name)) return "Could not retrieve object: %s" % name if cutout_obj is None: - self.app.inform.emit(_("[ERROR_NOTCL] There is no object selected for Cutout.\nSelect one and try again.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("There is no object selected for Cutout.\nSelect one and try again.")) return try: @@ -382,12 +383,13 @@ class CutOut(FlatCAMTool): try: dia = float(self.dia.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Tool diameter value is missing or wrong format. Add it and retry.")) return if 0 in {dia}: - self.app.inform.emit(_("[WARNING_NOTCL] Tool Diameter is zero value. Change it to a positive real number.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Tool Diameter is zero value. Change it to a positive real number.")) return "Tool Diameter is zero value. Change it to a positive real number." try: @@ -402,8 +404,8 @@ class CutOut(FlatCAMTool): try: margin = float(self.margin.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Margin value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Margin value is missing or wrong format. Add it and retry.")) return try: @@ -413,26 +415,27 @@ class CutOut(FlatCAMTool): try: gapsize = float(self.gapsize.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Gap size value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Gap size value is missing or wrong format. Add it and retry.")) return try: gaps = self.gaps.get_value() except TypeError: - self.app.inform.emit(_("[WARNING_NOTCL] Number of gaps value is missing. Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Number of gaps value is missing. Add it and retry.")) return if gaps not in ['None', 'LR', 'TB', '2LR', '2TB', '4', '8']: - self.app.inform.emit(_("[WARNING_NOTCL] Gaps value can be only one of: " - "'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " "Fill in a correct value and retry. ")) return if cutout_obj.multigeo is True: - self.app.inform.emit(_("[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" - "Optionally, this Multi-geo Geometry can be converted to Single-geo Geometry,\n" - "and after that perform Cutout.")) + self.app.inform.emit('[ERROR] %s' % _("Cutout operation cannot be done on a multi-geo Geometry.\n" + "Optionally, this Multi-geo Geometry can be converted to " + "Single-geo Geometry,\n" + "and after that perform Cutout.")) return convex_box = self.convex_box.get_value() @@ -548,7 +551,7 @@ class CutOut(FlatCAMTool): self.app.new_object('geometry', outname, geo_init) cutout_obj.plot() - self.app.inform.emit(_("[success] Any form CutOut operation finished.")) + self.app.inform.emit('[success] %s' % _("Any form CutOut operation finished.")) self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) self.app.should_we_save = True @@ -565,11 +568,11 @@ class CutOut(FlatCAMTool): cutout_obj = self.app.collection.get_by_name(str(name)) except Exception as e: log.debug("CutOut.on_rectangular_cutout() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), name)) return "Could not retrieve object: %s" % name if cutout_obj is None: - self.app.inform.emit(_("[ERROR_NOTCL] Object not found: %s") % cutout_obj) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Object not found: %s"), cutout_obj)) try: dia = float(self.dia.get_value()) @@ -578,12 +581,13 @@ class CutOut(FlatCAMTool): try: dia = float(self.dia.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Tool diameter value is missing or wrong format. Add it and retry.")) return if 0 in {dia}: - self.app.inform.emit(_("[ERROR_NOTCL] Tool Diameter is zero value. Change it to a positive real number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Tool Diameter is zero value. Change it to a positive real number.")) return "Tool Diameter is zero value. Change it to a positive real number." try: @@ -598,8 +602,8 @@ class CutOut(FlatCAMTool): try: margin = float(self.margin.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Margin value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Margin value is missing or wrong format. Add it and retry.")) return try: @@ -609,26 +613,28 @@ class CutOut(FlatCAMTool): try: gapsize = float(self.gapsize.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Gap size value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Gap size value is missing or wrong format. Add it and retry.")) return try: gaps = self.gaps.get_value() except TypeError: - self.app.inform.emit(_("[WARNING_NOTCL] Number of gaps value is missing. Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Number of gaps value is missing. Add it and retry.")) return if gaps not in ['None', 'LR', 'TB', '2LR', '2TB', '4', '8']: - self.app.inform.emit(_("[WARNING_NOTCL] Gaps value can be only one of: " - "'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " - "Fill in a correct value and retry. ")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Gaps value can be only one of: " + "'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " + "Fill in a correct value and retry. ")) return if cutout_obj.multigeo is True: - self.app.inform.emit(_("[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" - "Optionally, this Multi-geo Geometry can be converted to Single-geo Geometry,\n" - "and after that perform Cutout.")) + self.app.inform.emit('[ERROR] %s' % _("Cutout operation cannot be done on a multi-geo Geometry.\n" + "Optionally, this Multi-geo Geometry can be converted to " + "Single-geo Geometry,\n" + "and after that perform Cutout.")) return # Get min and max data for each object as we just cut rectangles across X or Y @@ -729,7 +735,8 @@ class CutOut(FlatCAMTool): self.app.new_object('geometry', outname, geo_init) # cutout_obj.plot() - self.app.inform.emit(_("[success] Any form CutOut operation finished.")) + self.app.inform.emit('[success] %s' % + _("Any form CutOut operation finished.")) self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) self.app.should_we_save = True @@ -744,12 +751,13 @@ class CutOut(FlatCAMTool): try: self.cutting_dia = float(self.dia.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Tool diameter value is missing or wrong format. Add it and retry.")) return if 0 in {self.cutting_dia}: - self.app.inform.emit(_("[ERROR_NOTCL] Tool Diameter is zero value. Change it to a positive real number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Tool Diameter is zero value. Change it to a positive real number.")) return "Tool Diameter is zero value. Change it to a positive real number." try: @@ -759,8 +767,8 @@ class CutOut(FlatCAMTool): try: self.cutting_gapsize = float(self.gapsize.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Gap size value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Gap size value is missing or wrong format. Add it and retry.")) return name = self.man_object_combo.currentText() @@ -769,7 +777,7 @@ class CutOut(FlatCAMTool): self.man_cutout_obj = self.app.collection.get_by_name(str(name)) except Exception as e: log.debug("CutOut.on_manual_cutout() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve Geometry object: %s") % name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve Geometry object"), name)) return "Could not retrieve object: %s" % name self.app.plotcanvas.vis_disconnect('key_press', self.app.ui.keyPressEvent) @@ -788,12 +796,12 @@ class CutOut(FlatCAMTool): self.man_cutout_obj = self.app.collection.get_by_name(str(name)) except Exception as e: log.debug("CutOut.on_manual_cutout() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve Geometry object: %s") % name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve Geometry object"), name)) return "Could not retrieve object: %s" % name if self.man_cutout_obj is None: - self.app.inform.emit( - _("[ERROR_NOTCL] Geometry object for manual cutout not found: %s") % self.man_cutout_obj) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Geometry object for manual cutout not found"), self.man_cutout_obj)) return # use the snapped position as reference @@ -803,7 +811,7 @@ class CutOut(FlatCAMTool): self.man_cutout_obj.subtract_polygon(cut_poly) self.man_cutout_obj.plot() - self.app.inform.emit(_("[success] Added manual Bridge Gap.")) + self.app.inform.emit('[success] %s' % _("Added manual Bridge Gap.")) self.app.should_we_save = True @@ -815,16 +823,18 @@ class CutOut(FlatCAMTool): cutout_obj = self.app.collection.get_by_name(str(name)) except Exception as e: log.debug("CutOut.on_manual_geo() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve Gerber object: %s") % name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve Gerber object"), name)) return "Could not retrieve object: %s" % name if cutout_obj is None: - self.app.inform.emit(_("[ERROR_NOTCL] There is no Gerber object selected for Cutout.\n" + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("There is no Gerber object selected for Cutout.\n" "Select one and try again.")) return if not isinstance(cutout_obj, FlatCAMGerber): - self.app.inform.emit(_("[ERROR_NOTCL] The selected object has to be of Gerber type.\n" + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("The selected object has to be of Gerber type.\n" "Select a Gerber file and try again.")) return @@ -835,12 +845,13 @@ class CutOut(FlatCAMTool): try: dia = float(self.dia.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Tool diameter value is missing or wrong format. Add it and retry.")) return if 0 in {dia}: - self.app.inform.emit(_("[ERROR_NOTCL] Tool Diameter is zero value. Change it to a positive real number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Tool Diameter is zero value. Change it to a positive real number.")) return "Tool Diameter is zero value. Change it to a positive real number." try: @@ -855,8 +866,8 @@ class CutOut(FlatCAMTool): try: margin = float(self.margin.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Margin value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Margin value is missing or wrong format. Add it and retry.")) return convex_box = self.convex_box.get_value() @@ -877,7 +888,8 @@ class CutOut(FlatCAMTool): geo = box(x0, y0, x1, y1) geo_obj.solid_geometry = geo.buffer(margin + abs(dia / 2)) else: - self.app.inform.emit(_("[ERROR_NOTCL] Geometry not supported for cutout: %s") % type(geo_union)) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Geometry not supported for cutout"), type(geo_union))) return 'fail' else: geo = geo_union diff --git a/flatcamTools/ToolDblSided.py b/flatcamTools/ToolDblSided.py index ec3d4716..b72fb9d4 100644 --- a/flatcamTools/ToolDblSided.py +++ b/flatcamTools/ToolDblSided.py @@ -328,8 +328,8 @@ class DblSidedTool(FlatCAMTool): try: px, py = self.point_entry.get_value() except TypeError: - self.app.inform.emit(_("[WARNING_NOTCL] 'Point' reference is selected and 'Point' coordinates " - "are missing. Add them and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("'Point' reference is selected and 'Point' coordinates " + "are missing. Add them and retry.")) return else: selection_index = self.box_combo.currentIndex() @@ -347,7 +347,7 @@ class DblSidedTool(FlatCAMTool): bb_obj = model_index.internalPointer().obj except AttributeError: self.app.inform.emit( - _("[WARNING_NOTCL] There is no Box reference object loaded. Load one and retry.")) + '[WARNING_NOTCL] %s' % _("There is no Box reference object loaded. Load one and retry.")) return xmin, ymin, xmax, ymax = bb_obj.bounds() @@ -364,20 +364,21 @@ class DblSidedTool(FlatCAMTool): dia = float(self.drill_dia.get_value().replace(',', '.')) self.drill_dia.set_value(dia) except ValueError: - self.app.inform.emit(_("[WARNING_NOTCL] Tool diameter value is missing or wrong format. " - "Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Tool diameter value is missing or wrong format. " + "Add it and retry.")) return if dia is '': - self.app.inform.emit(_("[WARNING_NOTCL] No value or wrong format in Drill Dia entry. Add it and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("No value or wrong format in Drill Dia entry. Add it and retry.")) return tools = {"1": {"C": dia}} # holes = self.alignment_holes.get_value() holes = eval('[{}]'.format(self.alignment_holes.text())) if not holes: - self.app.inform.emit(_("[WARNING_NOTCL] There are no Alignment Drill Coordinates to use. " - "Add them and retry.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There are no Alignment Drill Coordinates to use. " + "Add them and retry.")) return drills = [] @@ -399,7 +400,7 @@ class DblSidedTool(FlatCAMTool): self.app.new_object("excellon", "Alignment Drills", obj_init) self.drill_values = '' - self.app.inform.emit(_("[success] Excellon object with alignment drills created...")) + self.app.inform.emit('[success] %s' % _("Excellon object with alignment drills created...")) def on_mirror_gerber(self): selection_index = self.gerber_object_combo.currentIndex() @@ -408,11 +409,11 @@ class DblSidedTool(FlatCAMTool): try: fcobj = model_index.internalPointer().obj except Exception as e: - self.app.inform.emit(_("[WARNING_NOTCL] There is no Gerber object loaded ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Gerber object loaded ...")) return if not isinstance(fcobj, FlatCAMGerber): - self.app.inform.emit(_("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Only Gerber, Excellon and Geometry objects can be mirrored.")) return axis = self.mirror_axis.get_value() @@ -422,8 +423,8 @@ class DblSidedTool(FlatCAMTool): try: px, py = self.point_entry.get_value() except TypeError: - self.app.inform.emit(_("[WARNING_NOTCL] 'Point' coordinates missing. " - "Using Origin (0, 0) as mirroring reference.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("'Point' coordinates missing. " + "Using Origin (0, 0) as mirroring reference.")) px, py = (0, 0) else: @@ -432,7 +433,7 @@ class DblSidedTool(FlatCAMTool): try: bb_obj = model_index_box.internalPointer().obj except Exception as e: - self.app.inform.emit(_("[WARNING_NOTCL] There is no Box object loaded ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Box object loaded ...")) return xmin, ymin, xmax, ymax = bb_obj.bounds() @@ -442,7 +443,7 @@ class DblSidedTool(FlatCAMTool): fcobj.mirror(axis, [px, py]) self.app.object_changed.emit(fcobj) fcobj.plot() - self.app.inform.emit(_("[success] Gerber %s was mirrored...") % str(fcobj.options['name'])) + self.app.inform.emit('[success] Gerber %s %s...' % (str(fcobj.options['name']), _("was mirrored"))) def on_mirror_exc(self): selection_index = self.exc_object_combo.currentIndex() @@ -451,11 +452,11 @@ class DblSidedTool(FlatCAMTool): try: fcobj = model_index.internalPointer().obj except Exception as e: - self.app.inform.emit(_("[WARNING_NOTCL] There is no Excellon object loaded ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Excellon object loaded ...")) return if not isinstance(fcobj, FlatCAMExcellon): - self.app.inform.emit(_("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Only Gerber, Excellon and Geometry objects can be mirrored.")) return axis = self.mirror_axis.get_value() @@ -466,8 +467,8 @@ class DblSidedTool(FlatCAMTool): px, py = self.point_entry.get_value() except Exception as e: log.debug("DblSidedTool.on_mirror_geo() --> %s" % str(e)) - self.app.inform.emit(_("[WARNING_NOTCL] There are no Point coordinates in the Point field. " - "Add coords and try again ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There are no Point coordinates in the Point field. " + "Add coords and try again ...")) return else: selection_index_box = self.box_combo.currentIndex() @@ -476,7 +477,7 @@ class DblSidedTool(FlatCAMTool): bb_obj = model_index_box.internalPointer().obj except Exception as e: log.debug("DblSidedTool.on_mirror_geo() --> %s" % str(e)) - self.app.inform.emit(_("[WARNING_NOTCL] There is no Box object loaded ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Box object loaded ...")) return xmin, ymin, xmax, ymax = bb_obj.bounds() @@ -486,7 +487,7 @@ class DblSidedTool(FlatCAMTool): fcobj.mirror(axis, [px, py]) self.app.object_changed.emit(fcobj) fcobj.plot() - self.app.inform.emit(_("[success] Excellon %s was mirrored...") % str(fcobj.options['name'])) + self.app.inform.emit('[success] Excellon %s %s...' % (str(fcobj.options['name']), _("was mirrored"))) def on_mirror_geo(self): selection_index = self.geo_object_combo.currentIndex() @@ -495,11 +496,11 @@ class DblSidedTool(FlatCAMTool): try: fcobj = model_index.internalPointer().obj except Exception as e: - self.app.inform.emit(_("[WARNING_NOTCL] There is no Geometry object loaded ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Geometry object loaded ...")) return if not isinstance(fcobj, FlatCAMGeometry): - self.app.inform.emit(_("[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Only Gerber, Excellon and Geometry objects can be mirrored.")) return axis = self.mirror_axis.get_value() @@ -513,7 +514,7 @@ class DblSidedTool(FlatCAMTool): try: bb_obj = model_index_box.internalPointer().obj except Exception as e: - self.app.inform.emit(_("[WARNING_NOTCL] There is no Box object loaded ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("There is no Box object loaded ...")) return xmin, ymin, xmax, ymax = bb_obj.bounds() @@ -523,7 +524,8 @@ class DblSidedTool(FlatCAMTool): fcobj.mirror(axis, [px, py]) self.app.object_changed.emit(fcobj) fcobj.plot() - self.app.inform.emit(_("[success] Geometry %s was mirrored...") % str(fcobj.options['name'])) + self.app.inform.emit('[success] Geometry %s %s...' % (str(fcobj.options['name']), _("was mirrored"))) + def on_point_add(self): val = self.app.defaults["global_point_clipboard_format"] % (self.app.pos[0], self.app.pos[1]) diff --git a/flatcamTools/ToolFilm.py b/flatcamTools/ToolFilm.py index 450b7213..875d4586 100644 --- a/flatcamTools/ToolFilm.py +++ b/flatcamTools/ToolFilm.py @@ -227,13 +227,15 @@ class Film(FlatCAMTool): try: name = self.tf_object_combo.currentText() except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] No FlatCAM object selected. Load an object for Film and retry.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("No FlatCAM object selected. Load an object for Film and retry.")) return try: boxname = self.tf_box_combo.currentText() except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] No FlatCAM object selected. Load an object for Box and retry.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("No FlatCAM object selected. Load an object for Box and retry.")) return try: @@ -243,15 +245,13 @@ class Film(FlatCAMTool): try: border = float(self.boundary_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) return try: scale_stroke_width = int(self.film_scale_entry.get_value()) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) return if border is None: @@ -271,7 +271,7 @@ class Film(FlatCAMTool): filename = str(filename) if str(filename) == "": - self.app.inform.emit(_("[WARNING_NOTCL] Export SVG positive cancelled.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export SVG positive cancelled.")) return else: self.app.export_svg_black(name, boxname, filename, scale_factor=scale_stroke_width) @@ -287,7 +287,7 @@ class Film(FlatCAMTool): filename = str(filename) if str(filename) == "": - self.app.inform.emit(_("[WARNING_NOTCL] Export SVG negative cancelled.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Export SVG negative cancelled.")) return else: self.app.export_svg_negative(name, boxname, filename, border, scale_factor=scale_stroke_width) diff --git a/flatcamTools/ToolMove.py b/flatcamTools/ToolMove.py index 95387592..33e86c90 100644 --- a/flatcamTools/ToolMove.py +++ b/flatcamTools/ToolMove.py @@ -85,7 +85,7 @@ class ToolMove(FlatCAMTool): self.setVisible(False) # signal that there is no command active self.app.command_active = None - self.app.inform.emit(_("[WARNING_NOTCL] MOVE action cancelled. No object(s) to move.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("MOVE action cancelled. No object(s) to move.")) def on_left_click(self, event): # mouse click will be accepted only if the left button is clicked @@ -132,7 +132,7 @@ class ToolMove(FlatCAMTool): try: if not obj_list: - self.app.inform.emit(_("[WARNING_NOTCL] No object(s) selected.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("No object(s) selected.")) return "fail" else: for sel_obj in obj_list: @@ -155,14 +155,15 @@ class ToolMove(FlatCAMTool): # self.app.collection.set_active(sel_obj.options['name']) except Exception as e: proc.done() - self.app.inform.emit(_('[ERROR_NOTCL] ' - 'ToolMove.on_left_click() --> %s') % str(e)) + self.app.inform.emit('[ERROR_NOTCL] %s --> %s' % (_('ToolMove.on_left_click('), str(e))) return "fail" proc.done() # delete the selection bounding box self.delete_shape() - self.app.inform.emit(_('[success] %s object was moved ...') % - str(sel_obj.kind).capitalize()) + self.app.inform.emit('[success] %s %s' % (str(sel_obj.kind).capitalize(), + _('object was moved ...') + ) + ) self.app.worker_task.emit({'fcn': job_move, 'params': [self]}) @@ -171,8 +172,8 @@ class ToolMove(FlatCAMTool): return except TypeError: - self.app.inform.emit(_('[ERROR_NOTCL] ' - 'ToolMove.on_left_click() --> Error when mouse left click.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('ToolMove.on_left_click() --> Error when mouse left click.')) return self.clicked_move = 1 @@ -199,7 +200,7 @@ class ToolMove(FlatCAMTool): def on_key_press(self, event): if event.key == 'escape': # abort the move action - self.app.inform.emit(_("[WARNING_NOTCL] Move action cancelled.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Move action cancelled.")) self.toggle() return @@ -211,7 +212,7 @@ class ToolMove(FlatCAMTool): obj_list = self.app.collection.get_selected() if not obj_list: - self.app.inform.emit(_("[WARNING_NOTCL] Object(s) not selected")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Object(s) not selected")) self.toggle() else: # if we have an object selected then we can safely activate the mouse events diff --git a/flatcamTools/ToolNonCopperClear.py b/flatcamTools/ToolNonCopperClear.py index 8b20f442..f423e679 100644 --- a/flatcamTools/ToolNonCopperClear.py +++ b/flatcamTools/ToolNonCopperClear.py @@ -859,8 +859,8 @@ class NonCopperClear(FlatCAMTool, Gerber): try: tip_dia = float(self.tipdia_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, " + "use a number.")) return try: @@ -870,8 +870,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: tip_angle = float(self.tipangle_entry.get_value().replace(',', '.')) / 2 except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) return try: @@ -881,8 +880,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: cut_z = float(self.cutz_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) return # calculated tool diameter so the cut_z parameter is obeyed tool_dia = tip_dia + 2 * cut_z * math.tan(math.radians(tip_angle)) @@ -900,13 +898,12 @@ class NonCopperClear(FlatCAMTool, Gerber): try: tool_dia = float(self.addtool_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) return if tool_dia is None: self.build_ui() - self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Please enter a tool diameter to add, in Float format.")) return if self.units == 'MM': @@ -915,8 +912,8 @@ class NonCopperClear(FlatCAMTool, Gerber): tool_dia = float('%.4f' % tool_dia) if tool_dia == 0: - self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, " - "in Float format.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Please enter a tool diameter with non-zero value, " + "in Float format.")) return # construct a list of all 'tooluid' in the self.tools @@ -940,12 +937,12 @@ class NonCopperClear(FlatCAMTool, Gerber): if float('%.4f' % tool_dia) in tool_dias: if muted is None: - self.app.inform.emit(_("[WARNING_NOTCL] Adding tool cancelled. Tool already in Tool Table.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Adding tool cancelled. Tool already in Tool Table.")) self.tools_table.itemChanged.connect(self.on_tool_edit) return else: if muted is None: - self.app.inform.emit(_("[success] New tool added to Tool Table.")) + self.app.inform.emit('[success] %s' % _("New tool added to Tool Table.")) self.ncc_tools.update({ int(self.tooluid): { 'tooldia': float('%.4f' % tool_dia), @@ -980,7 +977,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: new_tool_dia = float(self.tools_table.item(row, 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, " "use a number.")) return @@ -989,7 +986,7 @@ class NonCopperClear(FlatCAMTool, Gerber): # identify the tool that was edited and get it's tooluid if new_tool_dia not in tool_dias: self.ncc_tools[tooluid]['tooldia'] = new_tool_dia - self.app.inform.emit(_("[success] Tool from Tool Table was edited.")) + self.app.inform.emit('[success] %s' % _("Tool from Tool Table was edited.")) self.build_ui() return else: @@ -1000,8 +997,8 @@ class NonCopperClear(FlatCAMTool, Gerber): break restore_dia_item = self.tools_table.item(row, 1) restore_dia_item.setText(str(old_tool_dia)) - self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. " - "New diameter value is already in the Tool Table.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Edit cancelled. " + "New diameter value is already in the Tool Table.")) self.build_ui() def on_tool_delete(self, rows_to_delete=None, all=None): @@ -1040,12 +1037,12 @@ class NonCopperClear(FlatCAMTool, Gerber): self.ncc_tools.pop(t, None) except AttributeError: - self.app.inform.emit(_("[WARNING_NOTCL] Delete failed. Select a tool to delete.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Delete failed. Select a tool to delete.")) return except Exception as e: log.debug(str(e)) - self.app.inform.emit(_("[success] Tool(s) deleted from Tool Table.")) + self.app.inform.emit('[success] %s' % _("Tool(s) deleted from Tool Table.")) self.build_ui() def on_ncc_click(self): @@ -1062,13 +1059,13 @@ class NonCopperClear(FlatCAMTool, Gerber): try: overlap = float(self.ncc_overlap_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, " + "use a number.")) return if overlap >= 1 or overlap < 0: - self.app.inform.emit(_("[ERROR_NOTCL] Overlap value must be between " - "0 (inclusive) and 1 (exclusive), ")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Overlap value must be between " + "0 (inclusive) and 1 (exclusive), ")) return connect = self.ncc_connect_cb.get_value() @@ -1083,11 +1080,11 @@ class NonCopperClear(FlatCAMTool, Gerber): try: self.ncc_obj = self.app.collection.get_by_name(self.obj_name) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Could not retrieve object: %s") % self.obj_name) return "Could not retrieve object: %s" % self.obj_name if self.ncc_obj is None: - self.app.inform.emit(_("[ERROR_NOTCL] Object not found: %s") % self.ncc_obj) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Object not found: %s") % self.ncc_obj) return # use the selected tools in the tool table; get diameters for non-copper clear @@ -1103,8 +1100,8 @@ class NonCopperClear(FlatCAMTool, Gerber): try: tooldia = float(self.tools_table.item(x.row(), 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong Tool Dia value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong Tool Dia value format entered, " + "use a number.")) continue if self.tools_table.cellWidget(x.row(), 4).currentText() == 'iso_op': @@ -1112,7 +1109,7 @@ class NonCopperClear(FlatCAMTool, Gerber): else: ncc_dia_list.append(tooldia) else: - self.app.inform.emit(_("[ERROR_NOTCL] No selected tools in Tool Table.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("No selected tools in Tool Table.")) return o_name = '%s_ncc' % self.obj_name @@ -1124,7 +1121,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: self.bound_obj = self.app.collection.get_by_name(self.bound_obj_name) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), self.obj_name)) return "Could not retrieve object: %s" % self.obj_name self.clear_copper(ncc_obj=self.ncc_obj, @@ -1137,7 +1134,7 @@ class NonCopperClear(FlatCAMTool, Gerber): contour=contour, rest=rest) elif select_method == 'area': - self.app.inform.emit(_("[WARNING_NOTCL] Click the start point of the area.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the start point of the area.")) # use the first tool in the tool table; get the diameter # tooldia = float('%.4f' % float(self.tools_table.item(0, 1).text())) @@ -1148,7 +1145,7 @@ class NonCopperClear(FlatCAMTool, Gerber): if event.button == 1: if self.first_click is False: self.first_click = True - self.app.inform.emit(_("[WARNING_NOTCL] Click the end point of the paint area.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % _("Click the end point of the paint area.")) self.cursor_pos = self.app.plotcanvas.translate_coords(event.pos) if self.app.grid_status() == True: @@ -1265,7 +1262,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: self.bound_obj = self.app.collection.get_by_name(self.bound_obj_name) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.bound_obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % (_("Could not retrieve object"), self.bound_obj_name)) return "Could not retrieve object: %s. Error: %s" % (self.bound_obj_name, str(e)) self.clear_copper(ncc_obj=self.ncc_obj, @@ -1339,8 +1336,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: ncc_margin = float(self.ncc_margin_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) return if select_method is not None: @@ -1366,8 +1362,7 @@ class NonCopperClear(FlatCAMTool, Gerber): try: ncc_offset = float(self.ncc_offset_spinner.get_value()) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("Wrong value format entered, use a number.")) return # ###################################################################################################### @@ -1417,7 +1412,7 @@ class NonCopperClear(FlatCAMTool, Gerber): bounding_box = env_obj.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre) except Exception as e: log.debug("NonCopperClear.clear_copper() 'itself' --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] No object available.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("No object available.")) return 'fail' elif ncc_select == 'area': geo_n = cascaded_union(self.sel_rect) @@ -1451,7 +1446,7 @@ class NonCopperClear(FlatCAMTool, Gerber): bounding_box = cascaded_union(self.ncc_obj.solid_geometry).convex_hull.intersection(geo_n) bounding_box = bounding_box.buffer(distance=ncc_margin, join_style=base.JOIN_STYLE.mitre) else: - self.app.inform.emit(_("[ERROR_NOTCL] The reference object type is not supported.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("The reference object type is not supported.")) return 'fail' log.debug("Copper clearing. Finished non-copper polygons.") @@ -1507,9 +1502,9 @@ class NonCopperClear(FlatCAMTool, Gerber): if isinstance(ncc_obj, FlatCAMGerber) and not isotooldia: sol_geo = ncc_obj.solid_geometry if has_offset is True: - app_obj.inform.emit(_("[WARNING_NOTCL] Buffering ...")) + app_obj.inform.emit('[WARNING_NOTCL] %s' % _("Buffering ...")) sol_geo = sol_geo.buffer(distance=ncc_offset) - app_obj.inform.emit(_("[success] Buffering finished ...")) + app_obj.inform.emit('[success] %s' % _("Buffering finished ...")) empty = self.get_ncc_empty_area(target=sol_geo, boundary=bounding_box) elif isinstance(ncc_obj, FlatCAMGerber) and isotooldia: isolated_geo = [] @@ -1527,7 +1522,7 @@ class NonCopperClear(FlatCAMTool, Gerber): isolated_geo = self.generate_envelope(tool_iso / 2, 0) if isolated_geo == 'fail': - app_obj.inform.emit(_("[ERROR_NOTCL] Isolation geometry could not be generated.")) + app_obj.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated.")) else: try: for geo_elem in isolated_geo: @@ -1589,21 +1584,22 @@ class NonCopperClear(FlatCAMTool, Gerber): if has_offset is True: app_obj.inform.emit(_("[WARNING_NOTCL] Buffering ...")) sol_geo = sol_geo.buffer(distance=ncc_offset) - app_obj.inform.emit(_("[success] Buffering finished ...")) + app_obj.inform.emit('[success] %s' % _("Buffering finished ...")) empty = self.get_ncc_empty_area(target=sol_geo, boundary=bounding_box) elif isinstance(ncc_obj, FlatCAMGeometry): sol_geo = cascaded_union(ncc_obj.solid_geometry) if has_offset is True: app_obj.inform.emit(_("[WARNING_NOTCL] Buffering ...")) sol_geo = sol_geo.buffer(distance=ncc_offset) - app_obj.inform.emit(_("[success] Buffering finished ...")) + app_obj.inform.emit('[success] %' % _("Buffering finished ...")) empty = self.get_ncc_empty_area(target=sol_geo, boundary=bounding_box) else: - app_obj.inform.emit(_('[ERROR_NOTCL] The selected object is not suitable for copper clearing.')) + app_obj.inform.emit('[ERROR_NOTCL] %' % _('The selected object is not suitable for copper clearing.')) return if empty.is_empty: - app_obj.inform.emit(_("[ERROR_NOTCL] Could not get the extent of the area to be non copper cleared.")) + app_obj.inform.emit('[ERROR_NOTCL] %s' % + _("Could not get the extent of the area to be non copper cleared.")) return 'fail' if type(empty) is Polygon: @@ -1747,19 +1743,22 @@ class NonCopperClear(FlatCAMTool, Gerber): if geo_obj.tools[tooluid]['solid_geometry']: has_solid_geo += 1 if has_solid_geo == 0: - app_obj.inform.emit(_("[ERROR] There is no Painting Geometry in the file.\n" - "Usually it means that the tool diameter is too big for the painted geometry.\n" - "Change the painting parameters and try again.")) + app_obj.inform.emit('[ERROR] %s' % _("There is no Painting Geometry in the file.\n" + "Usually it means that the tool diameter is too big " + "for the painted geometry.\n" + "Change the painting parameters and try again.")) return # Experimental... # print("Indexing...", end=' ') # geo_obj.make_index() if warning_flag == 0: - self.app.inform.emit(_("[success] Non-Copper clear all done.")) + self.app.inform.emit('[success] %s' % _("Non-Copper clear all done.")) else: - self.app.inform.emit('%s: %s %s.' % (_("[WARNING] Non-Copper clear all done but the copper features " - "isolation is broken for"), str(warning_flag), _("tools"))) + self.app.inform.emit('[WARNING] %s: %s %s.' % (_("Non-Copper clear all done but the copper features " + "isolation is broken for"), + str(warning_flag), + _("tools"))) # ########################################################################################### # Initializes the new geometry object for the case of the rest-machining #################### @@ -1793,9 +1792,9 @@ class NonCopperClear(FlatCAMTool, Gerber): if isinstance(ncc_obj, FlatCAMGerber) and not isotooldia: sol_geo = ncc_obj.solid_geometry if has_offset is True: - app_obj.inform.emit(_("[WARNING_NOTCL] Buffering ...")) + app_obj.inform.emit('[WARNING_NOTCL] %s' % _("Buffering ...")) sol_geo = sol_geo.buffer(distance=ncc_offset) - app_obj.inform.emit(_("[success] Buffering finished ...")) + app_obj.inform.emit('[success] %s' % _("Buffering finished ...")) empty = self.get_ncc_empty_area(target=sol_geo, boundary=bounding_box) elif isinstance(ncc_obj, FlatCAMGerber) and isotooldia: isolated_geo = [] @@ -1813,7 +1812,7 @@ class NonCopperClear(FlatCAMTool, Gerber): isolated_geo = self.generate_envelope(tool_iso, 0) if isolated_geo == 'fail': - app_obj.inform.emit(_("[ERROR_NOTCL] Isolation geometry could not be generated.")) + app_obj.inform.emit('[ERROR_NOTCL] %s' % _("Isolation geometry could not be generated.")) else: try: for geo_elem in isolated_geo: @@ -1873,23 +1872,24 @@ class NonCopperClear(FlatCAMTool, Gerber): sol_geo = cascaded_union(isolated_geo) if has_offset is True: - app_obj.inform.emit(_("[WARNING_NOTCL] Buffering ...")) + app_obj.inform.emit('[WARNING_NOTCL] %s' % _("Buffering ...")) sol_geo = sol_geo.buffer(distance=ncc_offset) - app_obj.inform.emit(_("[success] Buffering finished ...")) + app_obj.inform.emit('[success] %s' % _("Buffering finished ...")) empty = self.get_ncc_empty_area(target=sol_geo, boundary=bounding_box) elif isinstance(ncc_obj, FlatCAMGeometry): sol_geo = cascaded_union(ncc_obj.solid_geometry) if has_offset is True: app_obj.inform.emit(_("[WARNING_NOTCL] Buffering ...")) sol_geo = sol_geo.buffer(distance=ncc_offset) - app_obj.inform.emit(_("[success] Buffering finished ...")) + app_obj.inform.emit('[success] %s' % _("Buffering finished ...")) empty = self.get_ncc_empty_area(target=sol_geo, boundary=bounding_box) else: - app_obj.inform.emit(_('[ERROR_NOTCL] The selected object is not suitable for copper clearing.')) + app_obj.inform.emit('[ERROR_NOTCL] %s' % _('The selected object is not suitable for copper clearing.')) return if empty.is_empty: - app_obj.inform.emit(_("[ERROR_NOTCL] Could not get the extent of the area to be non copper cleared.")) + app_obj.inform.emit('[ERROR_NOTCL] %s' % + _("Could not get the extent of the area to be non copper cleared.")) return 'fail' if type(empty) is Polygon: @@ -2048,11 +2048,11 @@ class NonCopperClear(FlatCAMTool, Gerber): # it will be updated only if there is a solid_geometry for tools if geo_obj.tools: if warning_flag == 0: - self.app.inform.emit(_("[success] Non-Copper Rest Machining clear all done.")) + self.app.inform.emit('[success] %s' % _("Non-Copper Rest Machining clear all done.")) else: self.app.inform.emit( - '%s: %s %s.' % (_("[WARNING] Non-Copper Rest Machining clear all done but the copper features " - "isolation is broken for"), str(warning_flag), _("tools"))) + '[WARNING] %s: %s %s.' % (_("Non-Copper Rest Machining clear all done but the copper features " + "isolation is broken for"), str(warning_flag), _("tools"))) return else: # I will use this variable for this purpose although it was meant for something else diff --git a/flatcamTools/ToolPDF.py b/flatcamTools/ToolPDF.py index 5e8267b0..0a53f148 100644 --- a/flatcamTools/ToolPDF.py +++ b/flatcamTools/ToolPDF.py @@ -156,7 +156,7 @@ class ToolPDF(FlatCAMTool): filenames, _f = QtWidgets.QFileDialog.getOpenFileNames(caption=_("Open PDF"), filter=_filter_) if len(filenames) == 0: - self.app.inform.emit(_("[WARNING_NOTCL] Open PDF cancelled.")) + self.app.inform.emit('[WARNING_NOTCL] %s.' % _("Open PDF cancelled")) else: # start the parsing timer with a period of 1 second self.periodic_check(1000) @@ -241,8 +241,7 @@ class ToolPDF(FlatCAMTool): name_tool += 1 # create tools dictionary - spec = {"C": dia} - spec['solid_geometry'] = [] + spec = {"C": dia, 'solid_geometry': []} exc_obj.tools[str(name_tool)] = spec # create drill list of dictionaries @@ -259,19 +258,22 @@ class ToolPDF(FlatCAMTool): for tool in exc_obj.tools: if exc_obj.tools[tool]['solid_geometry']: return - app_obj.inform.emit(_("[ERROR_NOTCL] No geometry found in file: %s") % outname) + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("No geometry found in file"), outname)) return "fail" with self.app.proc_container.new(_("Rendering PDF layer #%d ...") % int(layer_nr)): ret_val = self.app.new_object("excellon", outname, obj_init, autoselected=False) if ret_val == 'fail': - self.app.inform.emit(_('[ERROR_NOTCL] Open PDF file failed.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Open PDF file failed.')) return # Register recent file self.app.file_opened.emit("excellon", filename) # GUI feedback - self.app.inform.emit(_("[success] Rendered: %s") % outname) + self.app.inform.emit('[success] %s: %s' % + (_("Rendered"), outname)) def layer_rendering_as_gerber(self, filename, ap_dict, layer_nr): outname = filename.split('/')[-1].split('\\')[-1] + "_%s" % str(layer_nr) @@ -339,12 +341,13 @@ class ToolPDF(FlatCAMTool): ret = self.app.new_object('gerber', outname, obj_init, autoselected=False) if ret == 'fail': - self.app.inform.emit(_('[ERROR_NOTCL] Open PDF file failed.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Open PDF file failed.')) return # Register recent file self.app.file_opened.emit('gerber', filename) # GUI feedback - self.app.inform.emit(_("[success] Rendered: %s") % outname) + self.app.inform.emit('[success] %s: %s' % (_("Rendered"), outname)) def periodic_check(self, check_period): """ diff --git a/flatcamTools/ToolPaint.py b/flatcamTools/ToolPaint.py index 7dd164b1..1f7dd032 100644 --- a/flatcamTools/ToolPaint.py +++ b/flatcamTools/ToolPaint.py @@ -691,13 +691,14 @@ class ToolPaint(FlatCAMTool, Gerber): try: tool_dia = float(self.addtool_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return if tool_dia is None: self.build_ui() - self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Please enter a tool diameter to add, in Float format.")) return # construct a list of all 'tooluid' in the self.tools @@ -721,12 +722,14 @@ class ToolPaint(FlatCAMTool, Gerber): if float('%.4f' % tool_dia) in tool_dias: if muted is None: - self.app.inform.emit(_("[WARNING_NOTCL] Adding tool cancelled. Tool already in Tool Table.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Adding tool cancelled. Tool already in Tool Table.")) self.tools_table.itemChanged.connect(self.on_tool_edit) return else: if muted is None: - self.app.inform.emit(_("[success] New tool added to Tool Table.")) + self.app.inform.emit('[success] %s' % + _("New tool added to Tool Table.")) self.paint_tools.update({ int(self.tooluid): { 'tooldia': float('%.4f' % tool_dia), @@ -763,15 +766,16 @@ class ToolPaint(FlatCAMTool, Gerber): try: new_tool_dia = float(self.tools_table.item(row, 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return tooluid = int(self.tools_table.item(row, 3).text()) # identify the tool that was edited and get it's tooluid if new_tool_dia not in tool_dias: self.paint_tools[tooluid]['tooldia'] = new_tool_dia - self.app.inform.emit(_("[success] Tool from Tool Table was edited.")) + self.app.inform.emit('[success] %s' % + _("Tool from Tool Table was edited.")) self.build_ui() return else: @@ -782,8 +786,8 @@ class ToolPaint(FlatCAMTool, Gerber): break restore_dia_item = self.tools_table.item(row, 1) restore_dia_item.setText(str(old_tool_dia)) - self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. " - "New diameter value is already in the Tool Table.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Edit cancelled. New diameter value is already in the Tool Table.")) self.build_ui() # def on_tool_copy(self, all=None): @@ -881,12 +885,14 @@ class ToolPaint(FlatCAMTool, Gerber): self.paint_tools.pop(t, None) except AttributeError: - self.app.inform.emit(_("[WARNING_NOTCL] Delete failed. Select a tool to delete.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Delete failed. Select a tool to delete.")) return except Exception as e: log.debug(str(e)) - self.app.inform.emit(_("[success] Tool(s) deleted from Tool Table.")) + self.app.inform.emit('[success] %s' % + _("Tool(s) deleted from Tool Table.")) self.build_ui() def on_paint_button_click(self): @@ -904,16 +910,17 @@ class ToolPaint(FlatCAMTool, Gerber): try: overlap = float(self.paintoverlap_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return if overlap >= 1 or overlap < 0: - self.app.inform.emit(_("[ERROR_NOTCL] Overlap value must be between " - "0 (inclusive) and 1 (exclusive), ")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Overlap value must be between 0 (inclusive) and 1 (exclusive)")) return - self.app.inform.emit(_("[WARNING_NOTCL] Click inside the desired polygon.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Click inside the desired polygon.")) connect = self.pathconnect_cb.get_value() contour = self.paintcontour_cb.get_value() @@ -926,17 +933,22 @@ class ToolPaint(FlatCAMTool, Gerber): self.paint_obj = self.app.collection.get_by_name(str(self.obj_name)) except Exception as e: log.debug("ToolPaint.on_paint_button_click() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Could not retrieve object: %s"), + self.obj_name)) return if self.paint_obj is None: - self.app.inform.emit(_("[ERROR_NOTCL] Object not found: %s") % self.paint_obj) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Object not found"), + self.paint_obj)) return # test if the Geometry Object is multigeo and return Fail if True because # for now Paint don't work on MultiGeo if self.paint_obj.multigeo is True: - self.app.inform.emit(_("[ERROR_NOTCL] Can't do Paint on MultiGeo geometries ...")) + self.app.inform.emit('[ERROR_NOTCL] %s...' % + _("Can't do Paint on MultiGeo geometries")) return 'Fail' o_name = '%s_multitool_paint' % self.obj_name @@ -952,12 +964,13 @@ class ToolPaint(FlatCAMTool, Gerber): try: tooldia = float(self.tools_table.item(x.row(), 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong Tool Dia value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) continue tooldia_list.append(tooldia) else: - self.app.inform.emit(_("[ERROR_NOTCL] No selected tools in Tool Table.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("No selected tools in Tool Table.")) return if select_method == "all": @@ -969,7 +982,8 @@ class ToolPaint(FlatCAMTool, Gerber): contour=contour) elif select_method == "single": - self.app.inform.emit(_("[WARNING_NOTCL] Click inside the desired polygon.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Click inside the desired polygon.")) # use the first tool in the tool table; get the diameter # tooldia = float('%.4f' % float(self.tools_table.item(0, 1).text())) @@ -999,7 +1013,8 @@ class ToolPaint(FlatCAMTool, Gerber): self.app.plotcanvas.vis_connect('mouse_press', doit) elif select_method == "area": - self.app.inform.emit(_("[WARNING_NOTCL] Click the start point of the paint area.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Click the start point of the paint area.")) # use the first tool in the tool table; get the diameter # tooldia = float('%.4f' % float(self.tools_table.item(0, 1).text())) @@ -1010,7 +1025,8 @@ class ToolPaint(FlatCAMTool, Gerber): if event.button == 1: if not self.first_click: self.first_click = True - self.app.inform.emit(_("[WARNING_NOTCL] Click the end point of the paint area.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Click the end point of the paint area.")) self.cursor_pos = self.app.plotcanvas.translate_coords(event.pos) if self.app.grid_status() == True: @@ -1121,7 +1137,9 @@ class ToolPaint(FlatCAMTool, Gerber): try: self.bound_obj = self.app.collection.get_by_name(self.bound_obj_name) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Could not retrieve object"), + self.obj_name)) return "Could not retrieve object: %s" % self.obj_name self.paint_poly_ref(obj=self.paint_obj, @@ -1178,8 +1196,8 @@ class ToolPaint(FlatCAMTool, Gerber): try: paint_margin = float(self.paintmargin_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return # No polygon? @@ -1261,7 +1279,8 @@ class ToolPaint(FlatCAMTool, Gerber): geo_obj.solid_geometry += list(cpoly.get_objects()) return cpoly else: - self.app.inform.emit(_('[ERROR_NOTCL] Geometry could not be painted completely')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Geometry could not be painted completely')) return None try: @@ -1303,9 +1322,10 @@ class ToolPaint(FlatCAMTool, Gerber): total_geometry = list(cp.get_objects()) except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) - self.app.inform.emit( - _("[ERROR] Could not do Paint. Try a different combination of parameters. " - "Or a different strategy of paint\n%s") % str(e)) + self.app.inform.emit('[ERROR] %s\n%s' % + (_("Could not do Paint. Try a different combination of parameters. " + "Or a different strategy of paint"), + str(e))) return # add the solid_geometry to the current too in self.paint_tools (tools_storage) @@ -1340,12 +1360,13 @@ class ToolPaint(FlatCAMTool, Gerber): if geo_obj.tools[tooluid]['solid_geometry']: has_solid_geo += 1 if has_solid_geo == 0: - self.app.inform.emit(_("[ERROR] There is no Painting Geometry in the file.\n" + self.app.inform.emit('[ERROR] %s' % + _("There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again.")) return - self.app.inform.emit(_("[success] Paint Single Done.")) + self.app.inform.emit('[success] %s' % _("Paint Single Done.")) # Experimental... # print("Indexing...", end=' ') @@ -1366,7 +1387,9 @@ class ToolPaint(FlatCAMTool, Gerber): app_obj.new_object("geometry", name, gen_paintarea) except Exception as e: proc.done() - self.app.inform.emit(_('[ERROR_NOTCL] PaintTool.paint_poly() --> %s') % str(e)) + self.app.inform.emit('[ERROR_NOTCL] %s --> %s' % + (_('PaintTool.paint_poly()'), + str(e))) return proc.done() # focus on Selected Tab @@ -1418,8 +1441,8 @@ class ToolPaint(FlatCAMTool, Gerber): try: paint_margin = float(self.paintmargin_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return proc = self.app.proc_container.new(_("Painting polygon...")) @@ -1583,9 +1606,10 @@ class ToolPaint(FlatCAMTool, Gerber): total_geometry += list(cp.get_objects()) except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) - self.app.inform.emit( - _("[ERROR] Could not do Paint All. Try a different combination of parameters. " - "Or a different Method of paint\n%s") % str(e)) + self.app.inform.emit('[ERROR] %s\n%s' % + (_("Could not do Paint All. Try a different combination of parameters. " + "Or a different Method of paint"), + str(e))) return pol_nr += 1 @@ -1635,7 +1659,8 @@ class ToolPaint(FlatCAMTool, Gerber): if geo_obj.tools[tooluid]['solid_geometry']: has_solid_geo += 1 if has_solid_geo == 0: - self.app.inform.emit(_("[ERROR] There is no Painting Geometry in the file.\n" + self.app.inform.emit('[ERROR] %s' % + _("There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again.")) return @@ -1710,9 +1735,10 @@ class ToolPaint(FlatCAMTool, Gerber): except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) - self.app.inform.emit( - _("[ERROR] Could not do Paint All. Try a different combination of parameters. " - "Or a different Method of paint\n%s") % str(e)) + self.app.inform.emit('[ERROR] %s\n%s' % + (_("Could not do Paint All. Try a different combination of parameters. " + "Or a different Method of paint"), + str(e))) return pol_nr += 1 @@ -1756,7 +1782,8 @@ class ToolPaint(FlatCAMTool, Gerber): if geo_obj.tools[tooluid]['solid_geometry']: has_solid_geo += 1 if has_solid_geo == 0: - self.app.inform.emit(_("[ERROR_NOTCL] There is no Painting Geometry in the file.\n" + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again.")) return @@ -1765,7 +1792,7 @@ class ToolPaint(FlatCAMTool, Gerber): # print("Indexing...", end=' ') # geo_obj.make_index() - self.app.inform.emit(_("[success] Paint All with Rest-Machining done.")) + self.app.inform.emit('[success] %s' % _("Paint All with Rest-Machining done.")) def job_thread(app_obj): try: @@ -1828,8 +1855,8 @@ class ToolPaint(FlatCAMTool, Gerber): try: paint_margin = float(self.paintmargin_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return proc = self.app.proc_container.new(_("Painting polygon...")) @@ -1991,9 +2018,9 @@ class ToolPaint(FlatCAMTool, Gerber): total_geometry += list(cp.get_objects()) except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) - self.app.inform.emit( - _("[ERROR] Could not do Paint All. Try a different combination of parameters. " - "Or a different Method of paint\n%s") % str(e)) + self.app.inform.emit('[ERROR] %s' % + _("Could not do Paint All. Try a different combination of parameters. " + "Or a different Method of paint\n%s") % str(e)) return pol_nr += 1 @@ -2043,7 +2070,8 @@ class ToolPaint(FlatCAMTool, Gerber): if geo_obj.tools[tooluid]['solid_geometry']: has_solid_geo += 1 if has_solid_geo == 0: - self.app.inform.emit(_("[ERROR] There is no Painting Geometry in the file.\n" + self.app.inform.emit('[ERROR] %s' % + _("There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again.")) return @@ -2125,9 +2153,9 @@ class ToolPaint(FlatCAMTool, Gerber): except Exception as e: log.debug("Could not Paint the polygons. %s" % str(e)) - self.app.inform.emit( - _("[ERROR] Could not do Paint All. Try a different combination of parameters. " - "Or a different Method of paint\n%s") % str(e)) + self.app.inform.emit('[ERROR] %s' % + _("Could not do Paint All. Try a different combination of parameters. " + "Or a different Method of paint\n%s") % str(e)) return pol_nr += 1 @@ -2171,7 +2199,8 @@ class ToolPaint(FlatCAMTool, Gerber): if geo_obj.tools[tooluid]['solid_geometry']: has_solid_geo += 1 if has_solid_geo == 0: - self.app.inform.emit(_("[ERROR_NOTCL] There is no Painting Geometry in the file.\n" + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted geometry.\n" "Change the painting parameters and try again.")) return @@ -2180,7 +2209,7 @@ class ToolPaint(FlatCAMTool, Gerber): # print("Indexing...", end=' ') # geo_obj.make_index() - self.app.inform.emit(_("[success] Paint All with Rest-Machining done.")) + self.app.inform.emit('[success] %s' % _("Paint All with Rest-Machining done.")) def job_thread(app_obj): try: @@ -2244,7 +2273,7 @@ class ToolPaint(FlatCAMTool, Gerber): sel_rect = env_obj.buffer(distance=0.0000001, join_style=base.JOIN_STYLE.mitre) except Exception as e: log.debug("ToolPaint.on_paint_button_click() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] No object available.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % _("No object available.")) return self.paint_poly_area(obj=obj, diff --git a/flatcamTools/ToolPanelize.py b/flatcamTools/ToolPanelize.py index 94b9588a..2818eba5 100644 --- a/flatcamTools/ToolPanelize.py +++ b/flatcamTools/ToolPanelize.py @@ -355,13 +355,15 @@ class Panelize(FlatCAMTool): obj = self.app.collection.get_by_name(str(name)) except Exception as e: log.debug("Panelize.on_panelize() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Could not retrieve object"), name)) return "Could not retrieve object: %s" % name panel_obj = obj if panel_obj is None: - self.app.inform.emit(_("[ERROR_NOTCL] Object not found: %s") % panel_obj) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Object not found"), panel_obj)) return "Object not found: %s" % panel_obj boxname = self.box_combo.currentText() @@ -370,11 +372,13 @@ class Panelize(FlatCAMTool): box = self.app.collection.get_by_name(boxname) except Exception as e: log.debug("Panelize.on_panelize() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % boxname) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Could not retrieve object"), boxname)) return "Could not retrieve object: %s" % boxname if box is None: - self.app.inform.emit(_("[WARNING_NOTCL]No object Box. Using instead %s") % panel_obj) + self.app.inform.emit('[WARNING_NOTCL]%s: %s' % + (_("No object Box. Using instead"), panel_obj)) self.reference_radio.set_value('bbox') if self.reference_radio.get_value() == 'bbox': @@ -389,8 +393,8 @@ class Panelize(FlatCAMTool): try: spacing_columns = float(self.spacing_columns.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return spacing_columns = spacing_columns if spacing_columns is not None else 0 @@ -401,8 +405,8 @@ class Panelize(FlatCAMTool): try: spacing_rows = float(self.spacing_rows.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return spacing_rows = spacing_rows if spacing_rows is not None else 0 @@ -414,8 +418,8 @@ class Panelize(FlatCAMTool): rows = float(self.rows.get_value().replace(',', '.')) rows = int(rows) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return rows = rows if rows is not None else 1 @@ -427,8 +431,8 @@ class Panelize(FlatCAMTool): columns = float(self.columns.get_value().replace(',', '.')) columns = int(columns) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return columns = columns if columns is not None else 1 @@ -439,8 +443,8 @@ class Panelize(FlatCAMTool): try: constrain_dx = float(self.x_width_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return try: @@ -450,14 +454,15 @@ class Panelize(FlatCAMTool): try: constrain_dy = float(self.y_height_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return panel_type = str(self.panel_type_radio.get_value()) if 0 in {columns, rows}: - self.app.inform.emit(_("[ERROR_NOTCL] Columns or Rows are zero value. Change them to a positive integer.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Columns or Rows are zero value. Change them to a positive integer.")) return "Columns or Rows are zero value. Change them to a positive integer." xmin, ymin, xmax, ymax = box.bounds() @@ -635,19 +640,19 @@ class Panelize(FlatCAMTool): plot=True, autoselected=True) if self.constrain_flag is False: - self.app.inform.emit(_("[success] Panel done...")) + self.app.inform.emit('[success] %s' % _("Panel done...")) else: self.constrain_flag = False - self.app.inform.emit(_("[WARNING] Too big for the constrain area. " + self.app.inform.emit(_("{text} Too big for the constrain area. " "Final panel has {col} columns and {row} rows").format( - col=columns, row=rows)) + text='[WARNING] ', col=columns, row=rows)) proc = self.app.proc_container.new(_("Generating panel ...")) def job_thread(app_obj): try: panelize_2() - self.app.inform.emit(_("[success] Panel created successfully.")) + self.app.inform.emit('[success] %s' % _("Panel created successfully.")) except Exception as ee: proc.done() log.debug(str(ee)) diff --git a/flatcamTools/ToolPcbWizard.py b/flatcamTools/ToolPcbWizard.py index 7afec009..efb82fc4 100644 --- a/flatcamTools/ToolPcbWizard.py +++ b/flatcamTools/ToolPcbWizard.py @@ -362,7 +362,8 @@ class PcbWizard(FlatCAMTool): self.frac_entry.set_value(self.fractional) if not self.tools_from_inf: - self.app.inform.emit(_("[ERROR] The INF file does not contain the tool table.\n" + self.app.inform.emit('[ERROR] %s' % + _("The INF file does not contain the tool table.\n" "Try to open the Excellon file from File -> Open -> Excellon\n" "and edit the drill diameters manually.")) return "fail" @@ -382,11 +383,13 @@ class PcbWizard(FlatCAMTool): if signal == 'inf': self.inf_loaded = True self.tools_table.setVisible(True) - self.app.inform.emit(_("[success] PcbWizard .INF file loaded.")) + self.app.inform.emit('[success] %s' % + _("PcbWizard .INF file loaded.")) elif signal == 'excellon': self.excellon_loaded = True self.outname = os.path.split(str(filename))[1] - self.app.inform.emit(_("[success] Main PcbWizard Excellon file loaded.")) + self.app.inform.emit('[success] %s' % + _("Main PcbWizard Excellon file loaded.")) if self.excellon_loaded and self.inf_loaded: self.update_params() @@ -420,16 +423,18 @@ class PcbWizard(FlatCAMTool): ret = excellon_obj.parse_file(file_obj=excellon_fileobj) if ret == "fail": app_obj.log.debug("Excellon parsing failed.") - app_obj.inform.emit(_("[ERROR_NOTCL] This is not Excellon file.")) + app_obj.inform.emit('[ERROR_NOTCL] %s' % + _("This is not Excellon file.")) return "fail" except IOError: - app_obj.inform.emit(_("[ERROR_NOTCL] Cannot parse file: %s") % self.outname) + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % ( + _("Cannot parse file"), self.outname)) app_obj.log.debug("Could not import Excellon object.") app_obj.progress.emit(0) return "fail" except Exception as e: app_obj.log.debug("PcbWizard.on_import_excellon().obj_init() %s" % str(e)) - msg = _("[ERROR_NOTCL] An internal error has occurred. See shell.\n") + msg = '[ERROR_NOTCL] %s' % _("An internal error has occurred. See shell.\n") msg += app_obj.traceback.format_exc() app_obj.inform.emit(msg) return "fail" @@ -442,7 +447,8 @@ class PcbWizard(FlatCAMTool): for tool in excellon_obj.tools: if excellon_obj.tools[tool]['solid_geometry']: return - app_obj.inform.emit(_("[ERROR_NOTCL] No geometry found in file: %s") % name) + app_obj.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("No geometry found in file"), name)) return "fail" if excellon_fileobj is not None and excellon_fileobj != '': @@ -454,16 +460,19 @@ class PcbWizard(FlatCAMTool): ret_val = self.app.new_object("excellon", name, obj_init, autoselected=False) if ret_val == 'fail': - self.app.inform.emit(_('[ERROR_NOTCL] Import Excellon file failed.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % _('Import Excellon file failed.')) return # Register recent file self.app.file_opened.emit("excellon", name) # GUI feedback - self.app.inform.emit(_("[success] Imported: %s") % name) + self.app.inform.emit('[success] %s: %s' % + (_("Imported"), name)) self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) else: - self.app.inform.emit(_('[WARNING_NOTCL] Excellon merging is in progress. Please wait...')) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _('Excellon merging is in progress. Please wait...')) else: - self.app.inform.emit(_('[ERROR_NOTCL] The imported Excellon file is None.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('The imported Excellon file is None.')) diff --git a/flatcamTools/ToolProperties.py b/flatcamTools/ToolProperties.py index 3f26c185..df62596e 100644 --- a/flatcamTools/ToolProperties.py +++ b/flatcamTools/ToolProperties.py @@ -108,14 +108,16 @@ class Properties(FlatCAMTool): def properties(self): obj_list = self.app.collection.get_selected() if not obj_list: - self.app.inform.emit(_("[ERROR_NOTCL] Properties Tool was not displayed. No object selected.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Properties Tool was not displayed. No object selected.")) self.app.ui.notebook.setTabText(2, _("Tools")) self.properties_frame.hide() self.app.ui.notebook.setCurrentWidget(self.app.ui.project_tab) return for obj in obj_list: self.addItems(obj) - self.app.inform.emit(_("[success] Object Properties are displayed.")) + self.app.inform.emit('[success] %s' % + _("Object Properties are displayed.")) self.app.ui.notebook.setTabText(2, _("Properties Tool")) def addItems(self, obj): diff --git a/flatcamTools/ToolSolderPaste.py b/flatcamTools/ToolSolderPaste.py index 3b4b9a9a..902657ef 100644 --- a/flatcamTools/ToolSolderPaste.py +++ b/flatcamTools/ToolSolderPaste.py @@ -760,17 +760,18 @@ class SolderPaste(FlatCAMTool): try: tool_dia = float(self.addtool_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return if tool_dia is None: self.build_ui() - self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter to add, in Float format.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Please enter a tool diameter to add, in Float format.")) return if tool_dia == 0: - self.app.inform.emit(_("[WARNING_NOTCL] Please enter a tool diameter with non-zero value, " - "in Float format.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Please enter a tool diameter with non-zero value, in Float format.")) return # construct a list of all 'tooluid' in the self.tooltable_tools @@ -794,12 +795,14 @@ class SolderPaste(FlatCAMTool): if float('%.4f' % tool_dia) in tool_dias: if muted is None: - self.app.inform.emit(_("[WARNING_NOTCL] Adding Nozzle tool cancelled. Tool already in Tool Table.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Adding Nozzle tool cancelled. Tool already in Tool Table.")) self.tools_table.itemChanged.connect(self.on_tool_edit) return else: if muted is None: - self.app.inform.emit(_("[success] New Nozzle tool added to Tool Table.")) + self.app.inform.emit('[success] %s' % + _("New Nozzle tool added to Tool Table.")) self.tooltable_tools.update({ int(self.tooluid): { 'tooldia': float('%.4f' % tool_dia), @@ -832,8 +835,8 @@ class SolderPaste(FlatCAMTool): try: new_tool_dia = float(self.tools_table.item(row, 1).text().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return tooluid = int(self.tools_table.item(row, 2).text()) @@ -841,7 +844,8 @@ class SolderPaste(FlatCAMTool): # identify the tool that was edited and get it's tooluid if new_tool_dia not in tool_dias: self.tooltable_tools[tooluid]['tooldia'] = new_tool_dia - self.app.inform.emit(_("[success] Nozzle tool from Tool Table was edited.")) + self.app.inform.emit('[success] %s' % + _("Nozzle tool from Tool Table was edited.")) self.build_ui() return else: @@ -852,8 +856,8 @@ class SolderPaste(FlatCAMTool): break restore_dia_item = self.tools_table.item(row, 1) restore_dia_item.setText(str(old_tool_dia)) - self.app.inform.emit(_("[WARNING_NOTCL] Edit cancelled. " - "New diameter value is already in the Tool Table.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Edit cancelled. New diameter value is already in the Tool Table.")) self.build_ui() def on_tool_delete(self, rows_to_delete=None, all=None): @@ -898,12 +902,14 @@ class SolderPaste(FlatCAMTool): self.tooltable_tools.pop(t, None) except AttributeError: - self.app.inform.emit(_("[WARNING_NOTCL] Delete failed. Select a Nozzle tool to delete.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Delete failed. Select a Nozzle tool to delete.")) return except Exception as e: log.debug(str(e)) - self.app.inform.emit(_("[success] Nozzle tool(s) deleted from Tool Table.")) + self.app.inform.emit('[success] %s' % + _("Nozzle tool(s) deleted from Tool Table.")) self.build_ui() def on_rmb_combo(self, pos, combo): @@ -958,7 +964,8 @@ class SolderPaste(FlatCAMTool): """ name = self.obj_combo.currentText() if name == '': - self.app.inform.emit(_("[WARNING_NOTCL] No SolderPaste mask Gerber object loaded.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("No SolderPaste mask Gerber object loaded.")) return obj = self.app.collection.get_by_name(name) @@ -988,7 +995,8 @@ class SolderPaste(FlatCAMTool): sorted_tools.sort(reverse=True) if not sorted_tools: - self.app.inform.emit(_("[WARNING_NOTCL] No Nozzle tools in the tool table.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("No Nozzle tools in the tool table.")) return 'fail' def flatten(geometry=None, reset=True, pathonly=False): @@ -1114,16 +1122,19 @@ class SolderPaste(FlatCAMTool): if not geo_obj.tools[tooluid_key]['solid_geometry']: a += 1 if a == len(geo_obj.tools): - self.app.inform.emit(_('[ERROR_NOTCL] Cancelled. Empty file, it has no geometry...')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Cancelled. Empty file, it has no geometry...')) return 'fail' - app_obj.inform.emit(_("[success] Solder Paste geometry generated successfully...")) + app_obj.inform.emit('[success] %s...' % + _("Solder Paste geometry generated successfully")) return # if we still have geometry not processed at the end of the tools then we failed # some or all the pads are not covered with solder paste if work_geo: - app_obj.inform.emit(_("[WARNING_NOTCL] Some or all pads have no solder " + app_obj.inform.emit('[WARNING_NOTCL] %s' % + _("Some or all pads have no solder " "due of inadequate nozzle diameters...")) return 'fail' @@ -1157,11 +1168,13 @@ class SolderPaste(FlatCAMTool): obj = self.app.collection.get_by_name(name) if name == '': - self.app.inform.emit(_("[WARNING_NOTCL] There is no Geometry object available.")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("There is no Geometry object available.")) return 'fail' if obj.special_group != 'solder_paste_tool': - self.app.inform.emit(_("[WARNING_NOTCL] This Geometry can't be processed. " + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("This Geometry can't be processed. " "NOT a solder_paste_tool geometry.")) return 'fail' @@ -1170,7 +1183,8 @@ class SolderPaste(FlatCAMTool): if obj.tools[tooluid_key]['solid_geometry'] is None: a += 1 if a == len(obj.tools): - self.app.inform.emit(_('[ERROR_NOTCL] Cancelled. Empty file, it has no geometry...')) + self.app.inform.emit('[ERROR_NOTCL] %s...' % + _('Cancelled. Empty file, it has no geometry')) return 'fail' # use the name of the first tool selected in self.geo_tools_table which has the diameter passed as tool_dia @@ -1197,7 +1211,7 @@ class SolderPaste(FlatCAMTool): ymax = obj.options['ymax'] except Exception as e: log.debug("FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s\n" % str(e)) - msg = "[ERROR] An internal error has ocurred. See shell.\n" + msg = '[ERROR] %s' % _("An internal error has ocurred. See shell.\n") msg += 'FlatCAMObj.FlatCAMGeometry.mtool_gen_cncjob() --> %s' % str(e) msg += traceback.format_exc() self.app.inform.emit(msg) @@ -1267,7 +1281,8 @@ class SolderPaste(FlatCAMTool): def job_thread(app_obj): with self.app.proc_container.new("Generating CNC Code"): if app_obj.new_object("cncjob", name, job_init) != 'fail': - app_obj.inform.emit(_("[success] ToolSolderPaste CNCjob created: %s") % name) + app_obj.inform.emit('[success] [success] %s: %s' % + (_("ToolSolderPaste CNCjob created"), name)) app_obj.progress.emit(100) # Create a promise with the name @@ -1299,11 +1314,13 @@ class SolderPaste(FlatCAMTool): try: if obj.special_group != 'solder_paste_tool': - self.app.inform.emit(_("[WARNING_NOTCL] This CNCJob object can't be processed. " + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("This CNCJob object can't be processed. " "NOT a solder_paste_tool CNCJob object.")) return except AttributeError: - self.app.inform.emit(_("[WARNING_NOTCL] This CNCJob object can't be processed. " + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("This CNCJob object can't be processed. " "NOT a solder_paste_tool CNCJob object.")) return @@ -1327,7 +1344,8 @@ class SolderPaste(FlatCAMTool): lines = StringIO(gcode) except Exception as e: log.debug("ToolSolderpaste.on_view_gcode() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] No Gcode in the object...")) + self.app.inform.emit('[ERROR_NOTCL] %s...' % + _("No Gcode in the object")) return try: @@ -1336,7 +1354,8 @@ class SolderPaste(FlatCAMTool): self.app.ui.code_editor.append(proc_line) except Exception as e: log.debug('ToolSolderPaste.on_view_gcode() -->%s' % str(e)) - self.app.inform.emit(_('[ERROR] ToolSolderPaste.on_view_gcode() -->%s') % str(e)) + self.app.inform.emit('[ERROR] %s --> %s' % + (_('ToolSolderPaste.on_view_gcode()'), str(e))) return self.app.ui.code_editor.moveCursor(QtGui.QTextCursor.Start) @@ -1355,7 +1374,8 @@ class SolderPaste(FlatCAMTool): obj = self.app.collection.get_by_name(name) if obj.special_group != 'solder_paste_tool': - self.app.inform.emit(_("[WARNING_NOTCL] This CNCJob object can't be processed. " + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("This CNCJob object can't be processed. " "NOT a solder_paste_tool CNCJob object.")) return @@ -1373,7 +1393,8 @@ class SolderPaste(FlatCAMTool): filename, _f = QtWidgets.QFileDialog.getSaveFileName(caption=_("Export Machine Code ..."), filter=_filter_) if filename == '': - self.app.inform.emit(_("[WARNING_NOTCL] Export Machine Code cancelled ...")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("Export Machine Code cancelled ...")) return gcode = '(G-CODE GENERATED BY FLATCAM v%s - www.flatcam.org - Version Date: %s)\n' % \ @@ -1399,17 +1420,20 @@ class SolderPaste(FlatCAMTool): for line in lines: f.write(line) except FileNotFoundError: - self.app.inform.emit(_("[WARNING_NOTCL] No such file or directory")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("No such file or directory")) return except PermissionError: - self.app.inform.emit(_("[WARNING] Permission denied, saving not possible.\n" + self.app.inform.emit('[WARNING] %s' % + _("Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible.")) return 'fail' if self.app.defaults["global_open_style"] is False: self.app.file_opened.emit("gcode", filename) self.app.file_saved.emit("gcode", filename) - self.app.inform.emit(_("[success] Solder paste dispenser GCode file saved to: %s") % filename) + self.app.inform.emit('[success] %s: %s' % + (_("Solder paste dispenser GCode file saved to"), filename)) def reset_fields(self): self.obj_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) diff --git a/flatcamTools/ToolSub.py b/flatcamTools/ToolSub.py index 5125a9e0..c3dd2df8 100644 --- a/flatcamTools/ToolSub.py +++ b/flatcamTools/ToolSub.py @@ -241,7 +241,8 @@ class ToolSub(FlatCAMTool): self.target_grb_obj_name = self.target_gerber_combo.currentText() if self.target_grb_obj_name == '': - self.app.inform.emit(_("[ERROR_NOTCL] No Target object loaded.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("No Target object loaded.")) return # Get target object. @@ -249,12 +250,14 @@ class ToolSub(FlatCAMTool): self.target_grb_obj = self.app.collection.get_by_name(self.target_grb_obj_name) except Exception as e: log.debug("ToolSub.on_grb_intersection_click() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Could not retrieve object"), self.obj_name)) return "Could not retrieve object: %s" % self.target_grb_obj_name self.sub_grb_obj_name = self.sub_gerber_combo.currentText() if self.sub_grb_obj_name == '': - self.app.inform.emit(_("[ERROR_NOTCL] No Substractor object loaded.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("No Substractor object loaded.")) return # Get substractor object. @@ -262,7 +265,8 @@ class ToolSub(FlatCAMTool): self.sub_grb_obj = self.app.collection.get_by_name(self.sub_grb_obj_name) except Exception as e: log.debug("ToolSub.on_grb_intersection_click() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Could not retrieve object"), self.obj_name)) return "Could not retrieve object: %s" % self.sub_grb_obj_name # crate the new_apertures dict structure @@ -412,11 +416,13 @@ class ToolSub(FlatCAMTool): with self.app.proc_container.new(_("Generating new object ...")): ret = self.app.new_object('gerber', outname, obj_init, autoselected=False) if ret == 'fail': - self.app.inform.emit(_('[ERROR_NOTCL] Generating new object failed.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Generating new object failed.')) return # GUI feedback - self.app.inform.emit(_("[success] Created: %s") % outname) + self.app.inform.emit('[success] %s: %s' % + (_("Created"), outname)) # cleanup self.new_apertures.clear() @@ -437,7 +443,8 @@ class ToolSub(FlatCAMTool): self.target_geo_obj_name = self.target_geo_combo.currentText() if self.target_geo_obj_name == '': - self.app.inform.emit(_("[ERROR_NOTCL] No Target object loaded.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("No Target object loaded.")) return # Get target object. @@ -445,12 +452,14 @@ class ToolSub(FlatCAMTool): self.target_geo_obj = self.app.collection.get_by_name(self.target_geo_obj_name) except Exception as e: log.debug("ToolSub.on_geo_intersection_click() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.target_geo_obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Could not retrieve object"), self.target_geo_obj_name)) return "Could not retrieve object: %s" % self.target_grb_obj_name self.sub_geo_obj_name = self.sub_geo_combo.currentText() if self.sub_geo_obj_name == '': - self.app.inform.emit(_("[ERROR_NOTCL] No Substractor object loaded.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("No Substractor object loaded.")) return # Get substractor object. @@ -458,11 +467,13 @@ class ToolSub(FlatCAMTool): self.sub_geo_obj = self.app.collection.get_by_name(self.sub_geo_obj_name) except Exception as e: log.debug("ToolSub.on_geo_intersection_click() --> %s" % str(e)) - self.app.inform.emit(_("[ERROR_NOTCL] Could not retrieve object: %s") % self.sub_geo_obj_name) + self.app.inform.emit('[ERROR_NOTCL] %s: %s' % + (_("Could not retrieve object"), self.sub_geo_obj_name)) return "Could not retrieve object: %s" % self.sub_geo_obj_name if self.sub_geo_obj.multigeo: - self.app.inform.emit(_("[ERROR_NOTCL] Currently, the Substractor geometry cannot be of type Multigeo.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Currently, the Substractor geometry cannot be of type Multigeo.")) return # create the target_options obj @@ -608,12 +619,14 @@ class ToolSub(FlatCAMTool): with self.app.proc_container.new(_("Generating new object ...")): ret = self.app.new_object('geometry', outname, obj_init, autoselected=False) if ret == 'fail': - self.app.inform.emit(_('[ERROR_NOTCL] Generating new object failed.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Generating new object failed.')) return # Register recent file self.app.file_opened.emit('geometry', outname) # GUI feedback - self.app.inform.emit(_("[success] Created: %s") % outname) + self.app.inform.emit('[success] %s: %s' % + (_("Created"), outname)) # cleanup self.new_tools.clear() @@ -687,7 +700,8 @@ class ToolSub(FlatCAMTool): self.app.worker_task.emit({'fcn': self.new_geo_object, 'params': [outname]}) else: - self.app.inform.emit(_('[ERROR_NOTCL] Generating new object failed.')) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _('Generating new object failed.')) def reset_fields(self): self.target_gerber_combo.setRootModelIndex(self.app.collection.index(0, 0, QtCore.QModelIndex())) diff --git a/flatcamTools/ToolTransform.py b/flatcamTools/ToolTransform.py index 54744231..1224ac3e 100644 --- a/flatcamTools/ToolTransform.py +++ b/flatcamTools/ToolTransform.py @@ -470,8 +470,8 @@ class ToolTransform(FlatCAMTool): try: value = float(self.rotate_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered for Rotate, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return self.app.worker_task.emit({'fcn': self.on_rotate_action, 'params': [value]}) @@ -504,8 +504,8 @@ class ToolTransform(FlatCAMTool): try: value = float(self.skewx_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered for Skew X, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return # self.on_skew("X", value) @@ -522,8 +522,8 @@ class ToolTransform(FlatCAMTool): try: value = float(self.skewy_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered for Skew Y, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return # self.on_skew("Y", value) @@ -540,8 +540,8 @@ class ToolTransform(FlatCAMTool): try: xvalue = float(self.scalex_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered for Scale X, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return # scaling to zero has no sense so we remove it, because scaling with 1 does nothing @@ -574,8 +574,8 @@ class ToolTransform(FlatCAMTool): try: yvalue = float(self.scaley_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered for Scale Y, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return # scaling to zero has no sense so we remove it, because scaling with 1 does nothing @@ -603,8 +603,8 @@ class ToolTransform(FlatCAMTool): try: value = float(self.offx_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered for Offset X, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return # self.on_offset("X", value) @@ -621,8 +621,8 @@ class ToolTransform(FlatCAMTool): try: value = float(self.offy_entry.get_value().replace(',', '.')) except ValueError: - self.app.inform.emit(_("[ERROR_NOTCL] Wrong value format entered for Offset Y, " - "use a number.")) + self.app.inform.emit('[ERROR_NOTCL] %s' % + _("Wrong value format entered, use a number.")) return # self.on_offset("Y", value) @@ -639,7 +639,8 @@ class ToolTransform(FlatCAMTool): ymaxlist = [] if not obj_list: - self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to rotate!")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("No object selected. Please Select an object to rotate!")) return else: with self.app.proc_container.new(_("Appying Rotate")): @@ -675,11 +676,12 @@ class ToolTransform(FlatCAMTool): # add information to the object that it was changed and how much sel_obj.options['rotate'] = num sel_obj.plot() - self.app.inform.emit(_('[success] Rotate done ...')) + self.app.inform.emit('[success] %s...' % _('Rotate done')) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, rotation movement was not executed.") % str(e)) + self.app.inform.emit('[ERROR_NOTCL] %s %s, %s.' % + (_("Due of"), str(e), _("action was not executed."))) return def on_flip(self, axis): @@ -690,7 +692,8 @@ class ToolTransform(FlatCAMTool): ymaxlist = [] if not obj_list: - self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to flip!")) + self.app.inform.emit('[WARNING_NOTCL] %s!' % + _("No object selected. Please Select an object to flip")) return else: with self.app.proc_container.new(_("Applying Flip")): @@ -735,7 +738,8 @@ class ToolTransform(FlatCAMTool): sel_obj.options['mirror_y'] = not sel_obj.options['mirror_y'] else: sel_obj.options['mirror_y'] = True - self.app.inform.emit(_('[success] Flip on the Y axis done ...')) + self.app.inform.emit('[success] %s...' % + _('Flip on the Y axis done')) elif axis is 'Y': sel_obj.mirror('Y', (px, py)) # add information to the object that it was changed and how much @@ -744,13 +748,15 @@ class ToolTransform(FlatCAMTool): sel_obj.options['mirror_x'] = not sel_obj.options['mirror_x'] else: sel_obj.options['mirror_x'] = True - self.app.inform.emit(_('[success] Flip on the X axis done ...')) + self.app.inform.emit('[success] %s...' % + _('Flip on the X axis done')) self.app.object_changed.emit(sel_obj) sel_obj.plot() self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Flip action was not executed.") % str(e)) + self.app.inform.emit('[ERROR_NOTCL] %s %s, %s.' % + (_("Due of"), str(e), _("action was not executed."))) return def on_skew(self, axis, num): @@ -759,7 +765,8 @@ class ToolTransform(FlatCAMTool): yminlist = [] if not obj_list: - self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to shear/skew!")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("No object selected. Please Select an object to shear/skew!")) return else: with self.app.proc_container.new(_("Applying Skew")): @@ -797,7 +804,8 @@ class ToolTransform(FlatCAMTool): self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Skew action was not executed.") % str(e)) + self.app.inform.emit('[ERROR_NOTCL] %s %s, %s.' % + (_("Due of"), str(e), _("action was not executed."))) return def on_scale(self, axis, xfactor, yfactor, point=None): @@ -808,7 +816,8 @@ class ToolTransform(FlatCAMTool): ymaxlist = [] if not obj_list: - self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to scale!")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("No object selected. Please Select an object to scale!")) return else: with self.app.proc_container.new(_("Applying Scale")): @@ -850,17 +859,20 @@ class ToolTransform(FlatCAMTool): self.app.object_changed.emit(sel_obj) sel_obj.plot() - self.app.inform.emit(_('[success] Scale on the %s axis done ...') % str(axis)) + self.app.inform.emit('[success] %s %s %s...' % + (_('Scale on the'), str(axis), _('axis done'))) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Scale action was not executed.") % str(e)) + self.app.inform.emit('[ERROR_NOTCL] %s %s, %s.' % + (_("Due of"), str(e), _("action was not executed."))) return def on_offset(self, axis, num): obj_list = self.app.collection.get_selected() if not obj_list: - self.app.inform.emit(_("[WARNING_NOTCL] No object selected. Please Select an object to offset!")) + self.app.inform.emit('[WARNING_NOTCL] %s' % + _("No object selected. Please Select an object to offset!")) return else: with self.app.proc_container.new(_("Applying Offset")): @@ -869,7 +881,7 @@ class ToolTransform(FlatCAMTool): for sel_obj in obj_list: if isinstance(sel_obj, FlatCAMCNCjob): - self.app.inform.emit(_("CNCJob objects can't be offseted.")) + self.app.inform.emit(_("CNCJob objects can't be offset.")) else: if axis is 'X': sel_obj.offset((num, 0)) @@ -882,11 +894,13 @@ class ToolTransform(FlatCAMTool): self.app.object_changed.emit(sel_obj) sel_obj.plot() - self.app.inform.emit(_('[success] Offset on the %s axis done ...') % str(axis)) + self.app.inform.emit('[success] %s %s %s...' % + (_('Offset on the'), str(axis), _('axis done'))) self.app.progress.emit(100) except Exception as e: - self.app.inform.emit(_("[ERROR_NOTCL] Due of %s, Offset action was not executed.") % str(e)) + self.app.inform.emit('[ERROR_NOTCL] %s %s, %s.' % + (_("Due of"), str(e), _("action was not executed."))) return # end of file diff --git a/locale_template/strings.pot b/locale_template/strings.pot index 738bed2d..2dcd0111 100644 --- a/locale_template/strings.pot +++ b/locale_template/strings.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2019-09-06 17:02+0300\n" +"POT-Creation-Date: 2019-09-06 21:00+0300\n" "PO-Revision-Date: 2019-03-25 15:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -15,7 +15,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" -"X-Generator: Poedit 2.0.7\n" +"X-Generator: Poedit 2.2.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Basepath: ..\n" "X-Poedit-SearchPath-0: .\n" @@ -160,7 +160,7 @@ msgstr "" #: FlatCAMApp.py:3155 FlatCAMApp.py:5189 FlatCAMApp.py:7670 FlatCAMApp.py:7783 #: FlatCAMApp.py:7906 FlatCAMApp.py:7963 FlatCAMApp.py:8076 FlatCAMApp.py:8201 -#: FlatCAMObj.py:5943 flatcamTools/ToolSolderPaste.py:1405 +#: FlatCAMObj.py:5943 msgid "" "[WARNING] Permission denied, saving not possible.\n" "Most likely another app is holding the file open and not accessible." @@ -350,7 +350,6 @@ msgid "Saved to: %s" msgstr "" #: FlatCAMApp.py:5260 FlatCAMApp.py:5293 FlatCAMApp.py:5304 FlatCAMApp.py:5315 -#: flatcamTools/ToolNonCopperClear.py:918 flatcamTools/ToolSolderPaste.py:772 msgid "" "[WARNING_NOTCL] Please enter a tool diameter with non-zero value, in Float " "format." @@ -459,7 +458,7 @@ msgstr "" #: FlatCAMApp.py:5894 FlatCAMApp.py:5934 #: flatcamEditors/FlatCAMGeoEditor.py:1357 -#: flatcamEditors/FlatCAMGrbEditor.py:5584 flatcamTools/ToolTransform.py:753 +#: flatcamEditors/FlatCAMGrbEditor.py:5584 #, python-format msgid "[ERROR_NOTCL] Due of %s, Flip action was not executed." msgstr "" @@ -489,7 +488,7 @@ msgid "[success] Rotation done." msgstr "" #: FlatCAMApp.py:5982 flatcamEditors/FlatCAMGeoEditor.py:1300 -#: flatcamEditors/FlatCAMGrbEditor.py:5513 flatcamTools/ToolTransform.py:682 +#: flatcamEditors/FlatCAMGrbEditor.py:5513 #, python-format msgid "[ERROR_NOTCL] Due of %s, rotation movement was not executed." msgstr "" @@ -800,7 +799,7 @@ msgid "[ERROR]App.on_view_source() -->%s" msgstr "" #: FlatCAMApp.py:7427 FlatCAMApp.py:8628 FlatCAMObj.py:5723 -#: flatcamTools/ToolSolderPaste.py:1289 +#: flatcamTools/ToolSolderPaste.py:1304 msgid "Code Editor" msgstr "" @@ -975,7 +974,7 @@ msgstr "" msgid "[ERROR_NOTCL] Open Gerber failed. Probable not a Gerber file." msgstr "" -#: FlatCAMApp.py:8514 flatcamTools/ToolPcbWizard.py:423 +#: FlatCAMApp.py:8514 msgid "[ERROR_NOTCL] This is not Excellon file." msgstr "" @@ -984,12 +983,11 @@ msgstr "" msgid "[ERROR_NOTCL] Cannot open file: %s" msgstr "" -#: FlatCAMApp.py:8522 flatcamTools/ToolPcbWizard.py:432 +#: FlatCAMApp.py:8522 msgid "[ERROR_NOTCL] An internal error has occurred. See shell.\n" msgstr "" -#: FlatCAMApp.py:8535 flatcamTools/ToolPDF.py:262 -#: flatcamTools/ToolPcbWizard.py:445 +#: FlatCAMApp.py:8535 #, python-format msgid "[ERROR_NOTCL] No geometry found in file: %s" msgstr "" @@ -1223,8 +1221,7 @@ msgstr "" msgid "Advanced" msgstr "" -#: FlatCAMObj.py:950 FlatCAMObj.py:1053 flatcamTools/ToolNonCopperClear.py:1530 -#: flatcamTools/ToolNonCopperClear.py:1816 +#: FlatCAMObj.py:950 FlatCAMObj.py:1053 msgid "[ERROR_NOTCL] Isolation geometry could not be generated." msgstr "" @@ -1256,26 +1253,6 @@ msgstr "" #: FlatCAMObj.py:2227 FlatCAMObj.py:3506 FlatCAMObj.py:3796 FlatCAMObj.py:3983 #: FlatCAMObj.py:3994 FlatCAMObj.py:4112 FlatCAMObj.py:4517 FlatCAMObj.py:4753 #: FlatCAMObj.py:5181 flatcamEditors/FlatCAMExcEditor.py:2398 -#: flatcamTools/ToolCalculators.py:310 flatcamTools/ToolCalculators.py:321 -#: flatcamTools/ToolCalculators.py:333 flatcamTools/ToolCalculators.py:348 -#: flatcamTools/ToolCalculators.py:361 flatcamTools/ToolCalculators.py:375 -#: flatcamTools/ToolCalculators.py:386 flatcamTools/ToolCalculators.py:397 -#: flatcamTools/ToolCalculators.py:408 flatcamTools/ToolFilm.py:246 -#: flatcamTools/ToolFilm.py:253 flatcamTools/ToolNonCopperClear.py:862 -#: flatcamTools/ToolNonCopperClear.py:873 -#: flatcamTools/ToolNonCopperClear.py:884 -#: flatcamTools/ToolNonCopperClear.py:903 -#: flatcamTools/ToolNonCopperClear.py:983 -#: flatcamTools/ToolNonCopperClear.py:1065 -#: flatcamTools/ToolNonCopperClear.py:1342 -#: flatcamTools/ToolNonCopperClear.py:1369 flatcamTools/ToolPaint.py:694 -#: flatcamTools/ToolPaint.py:766 flatcamTools/ToolPaint.py:907 -#: flatcamTools/ToolPaint.py:1181 flatcamTools/ToolPaint.py:1421 -#: flatcamTools/ToolPaint.py:1831 flatcamTools/ToolPanelize.py:392 -#: flatcamTools/ToolPanelize.py:404 flatcamTools/ToolPanelize.py:417 -#: flatcamTools/ToolPanelize.py:430 flatcamTools/ToolPanelize.py:442 -#: flatcamTools/ToolPanelize.py:453 flatcamTools/ToolSolderPaste.py:763 -#: flatcamTools/ToolSolderPaste.py:835 msgid "[ERROR_NOTCL] Wrong value format entered, use a number." msgstr "" @@ -1389,8 +1366,7 @@ msgid "" "[WARNING_NOTCL] This Geometry can't be processed because it is %s geometry." msgstr "" -#: FlatCAMObj.py:4314 flatcamTools/ToolNonCopperClear.py:1106 -#: flatcamTools/ToolPaint.py:955 +#: FlatCAMObj.py:4314 msgid "[ERROR_NOTCL] Wrong Tool Dia value format entered, use a number." msgstr "" @@ -1426,8 +1402,7 @@ msgstr "" msgid "G-Code processing failed with error: %s" msgstr "" -#: FlatCAMObj.py:4646 flatcamTools/ToolSolderPaste.py:1117 -#: flatcamTools/ToolSolderPaste.py:1173 +#: FlatCAMObj.py:4646 msgid "[ERROR_NOTCL] Cancelled. Empty file, it has no geometry..." msgstr "" @@ -1453,11 +1428,11 @@ msgstr "" msgid "[success] Geometry Offset done." msgstr "" -#: FlatCAMObj.py:5683 FlatCAMObj.py:5688 flatcamTools/ToolSolderPaste.py:1373 +#: FlatCAMObj.py:5683 FlatCAMObj.py:5688 flatcamTools/ToolSolderPaste.py:1393 msgid "Export Machine Code ..." msgstr "" -#: FlatCAMObj.py:5694 flatcamTools/ToolSolderPaste.py:1376 +#: FlatCAMObj.py:5694 msgid "[WARNING_NOTCL] Export Machine Code cancelled ..." msgstr "" @@ -1496,7 +1471,7 @@ msgstr "" msgid "[success] Toolchange G-code was replaced by a custom code." msgstr "" -#: FlatCAMObj.py:5939 flatcamTools/ToolSolderPaste.py:1402 +#: FlatCAMObj.py:5939 msgid "[WARNING_NOTCL] No such file or directory" msgstr "" @@ -2140,7 +2115,7 @@ msgid "" msgstr "" #: flatcamEditors/FlatCAMExcEditor.py:1730 flatcamGUI/FlatCAMGUI.py:5600 -#: flatcamTools/ToolProperties.py:348 +#: flatcamTools/ToolProperties.py:350 msgid "Length" msgstr "" @@ -2428,9 +2403,7 @@ msgstr "" msgid "[WARNING_NOTCL] Paint cancelled. No shape selected." msgstr "" -#: flatcamEditors/FlatCAMGeoEditor.py:576 flatcamTools/ToolCutOut.py:385 -#: flatcamTools/ToolCutOut.py:581 flatcamTools/ToolCutOut.py:747 -#: flatcamTools/ToolCutOut.py:838 flatcamTools/ToolDblSided.py:367 +#: flatcamEditors/FlatCAMGeoEditor.py:576 msgid "" "[WARNING_NOTCL] Tool diameter value is missing or wrong format. Add it and " "retry." @@ -2451,7 +2424,7 @@ msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:2708 #: flatcamEditors/FlatCAMGeoEditor.py:2736 #: flatcamEditors/FlatCAMGeoEditor.py:2764 flatcamGUI/FlatCAMGUI.py:5760 -#: flatcamTools/ToolProperties.py:112 flatcamTools/ToolProperties.py:137 +#: flatcamTools/ToolProperties.py:113 flatcamTools/ToolProperties.py:139 msgid "Tools" msgstr "" @@ -2741,37 +2714,37 @@ msgid "[WARNING_NOTCL] Transformation cancelled. No shape selected." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1077 -#: flatcamEditors/FlatCAMGrbEditor.py:5249 flatcamTools/ToolTransform.py:473 +#: flatcamEditors/FlatCAMGrbEditor.py:5249 msgid "[ERROR_NOTCL] Wrong value format entered for Rotate, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1114 -#: flatcamEditors/FlatCAMGrbEditor.py:5292 flatcamTools/ToolTransform.py:507 +#: flatcamEditors/FlatCAMGrbEditor.py:5292 msgid "[ERROR_NOTCL] Wrong value format entered for Skew X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1135 -#: flatcamEditors/FlatCAMGrbEditor.py:5319 flatcamTools/ToolTransform.py:525 +#: flatcamEditors/FlatCAMGrbEditor.py:5319 msgid "[ERROR_NOTCL] Wrong value format entered for Skew Y, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1156 -#: flatcamEditors/FlatCAMGrbEditor.py:5346 flatcamTools/ToolTransform.py:543 +#: flatcamEditors/FlatCAMGrbEditor.py:5346 msgid "[ERROR_NOTCL] Wrong value format entered for Scale X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1193 -#: flatcamEditors/FlatCAMGrbEditor.py:5387 flatcamTools/ToolTransform.py:577 +#: flatcamEditors/FlatCAMGrbEditor.py:5387 msgid "[ERROR_NOTCL] Wrong value format entered for Scale Y, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1225 -#: flatcamEditors/FlatCAMGrbEditor.py:5425 flatcamTools/ToolTransform.py:606 +#: flatcamEditors/FlatCAMGrbEditor.py:5425 msgid "[ERROR_NOTCL] Wrong value format entered for Offset X, use a number." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1246 -#: flatcamEditors/FlatCAMGrbEditor.py:5451 flatcamTools/ToolTransform.py:624 +#: flatcamEditors/FlatCAMGrbEditor.py:5451 msgid "[ERROR_NOTCL] Wrong value format entered for Offset Y, use a number." msgstr "" @@ -2781,7 +2754,7 @@ msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to rotate!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1267 -#: flatcamEditors/FlatCAMGrbEditor.py:5477 flatcamTools/ToolTransform.py:645 +#: flatcamEditors/FlatCAMGrbEditor.py:5477 flatcamTools/ToolTransform.py:646 msgid "Appying Rotate" msgstr "" @@ -2796,17 +2769,17 @@ msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to flip!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1314 -#: flatcamEditors/FlatCAMGrbEditor.py:5532 flatcamTools/ToolTransform.py:696 +#: flatcamEditors/FlatCAMGrbEditor.py:5532 flatcamTools/ToolTransform.py:699 msgid "Applying Flip" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1344 -#: flatcamEditors/FlatCAMGrbEditor.py:5571 flatcamTools/ToolTransform.py:738 +#: flatcamEditors/FlatCAMGrbEditor.py:5571 msgid "[success] Flip on the Y axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1347 -#: flatcamEditors/FlatCAMGrbEditor.py:5579 flatcamTools/ToolTransform.py:747 +#: flatcamEditors/FlatCAMGrbEditor.py:5579 msgid "[success] Flip on the X axis done ..." msgstr "" @@ -2816,18 +2789,18 @@ msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to shear/skew!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1369 -#: flatcamEditors/FlatCAMGrbEditor.py:5602 flatcamTools/ToolTransform.py:765 +#: flatcamEditors/FlatCAMGrbEditor.py:5602 flatcamTools/ToolTransform.py:772 msgid "Applying Skew" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1394 -#: flatcamEditors/FlatCAMGrbEditor.py:5637 flatcamTools/ToolTransform.py:796 +#: flatcamEditors/FlatCAMGrbEditor.py:5637 flatcamTools/ToolTransform.py:803 #, python-format msgid "[success] Skew on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1398 -#: flatcamEditors/FlatCAMGrbEditor.py:5641 flatcamTools/ToolTransform.py:800 +#: flatcamEditors/FlatCAMGrbEditor.py:5641 #, python-format msgid "[ERROR_NOTCL] Due of %s, Skew action was not executed." msgstr "" @@ -2838,18 +2811,18 @@ msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to scale!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1412 -#: flatcamEditors/FlatCAMGrbEditor.py:5663 flatcamTools/ToolTransform.py:814 +#: flatcamEditors/FlatCAMGrbEditor.py:5663 flatcamTools/ToolTransform.py:823 msgid "Applying Scale" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1445 -#: flatcamEditors/FlatCAMGrbEditor.py:5701 flatcamTools/ToolTransform.py:853 +#: flatcamEditors/FlatCAMGrbEditor.py:5701 #, python-format msgid "[success] Scale on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1448 -#: flatcamEditors/FlatCAMGrbEditor.py:5704 flatcamTools/ToolTransform.py:856 +#: flatcamEditors/FlatCAMGrbEditor.py:5704 #, python-format msgid "[ERROR_NOTCL] Due of %s, Scale action was not executed." msgstr "" @@ -2860,18 +2833,18 @@ msgid "[WARNING_NOTCL] No shape selected. Please Select a shape to offset!" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1460 -#: flatcamEditors/FlatCAMGrbEditor.py:5720 flatcamTools/ToolTransform.py:866 +#: flatcamEditors/FlatCAMGrbEditor.py:5720 flatcamTools/ToolTransform.py:878 msgid "Applying Offset" msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1471 -#: flatcamEditors/FlatCAMGrbEditor.py:5742 flatcamTools/ToolTransform.py:885 +#: flatcamEditors/FlatCAMGrbEditor.py:5742 #, python-format msgid "[success] Offset on the %s axis done ..." msgstr "" #: flatcamEditors/FlatCAMGeoEditor.py:1475 -#: flatcamEditors/FlatCAMGrbEditor.py:5746 flatcamTools/ToolTransform.py:889 +#: flatcamEditors/FlatCAMGrbEditor.py:5746 #, python-format msgid "[ERROR_NOTCL] Due of %s, Offset action was not executed." msgstr "" @@ -3403,7 +3376,7 @@ msgid "Gerber Editor" msgstr "" #: flatcamEditors/FlatCAMGrbEditor.py:2357 flatcamGUI/ObjectUI.py:192 -#: flatcamTools/ToolProperties.py:135 +#: flatcamTools/ToolProperties.py:137 msgid "Apertures" msgstr "" @@ -5817,7 +5790,7 @@ msgstr "" #: flatcamGUI/FlatCAMGUI.py:4003 flatcamGUI/FlatCAMGUI.py:4517 #: flatcamGUI/FlatCAMGUI.py:5342 flatcamTools/ToolMeasurement.py:43 -#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:131 +#: flatcamTools/ToolPcbWizard.py:127 flatcamTools/ToolProperties.py:133 msgid "Units" msgstr "" @@ -8938,6 +8911,33 @@ msgstr "" msgid "Calc. Tool" msgstr "" +#: flatcamTools/ToolCalculators.py:311 flatcamTools/ToolCalculators.py:322 +#: flatcamTools/ToolCalculators.py:334 flatcamTools/ToolCalculators.py:349 +#: flatcamTools/ToolCalculators.py:362 flatcamTools/ToolCalculators.py:376 +#: flatcamTools/ToolCalculators.py:387 flatcamTools/ToolCalculators.py:398 +#: flatcamTools/ToolCalculators.py:409 flatcamTools/ToolFilm.py:248 +#: flatcamTools/ToolFilm.py:254 flatcamTools/ToolNonCopperClear.py:862 +#: flatcamTools/ToolNonCopperClear.py:873 +#: flatcamTools/ToolNonCopperClear.py:883 +#: flatcamTools/ToolNonCopperClear.py:901 +#: flatcamTools/ToolNonCopperClear.py:980 +#: flatcamTools/ToolNonCopperClear.py:1062 +#: flatcamTools/ToolNonCopperClear.py:1339 +#: flatcamTools/ToolNonCopperClear.py:1365 flatcamTools/ToolPaint.py:695 +#: flatcamTools/ToolPaint.py:770 flatcamTools/ToolPaint.py:914 +#: flatcamTools/ToolPaint.py:968 flatcamTools/ToolPaint.py:1200 +#: flatcamTools/ToolPaint.py:1445 flatcamTools/ToolPaint.py:1859 +#: flatcamTools/ToolPanelize.py:397 flatcamTools/ToolPanelize.py:409 +#: flatcamTools/ToolPanelize.py:422 flatcamTools/ToolPanelize.py:435 +#: flatcamTools/ToolPanelize.py:447 flatcamTools/ToolPanelize.py:458 +#: flatcamTools/ToolSolderPaste.py:764 flatcamTools/ToolSolderPaste.py:839 +#: flatcamTools/ToolTransform.py:474 flatcamTools/ToolTransform.py:508 +#: flatcamTools/ToolTransform.py:526 flatcamTools/ToolTransform.py:544 +#: flatcamTools/ToolTransform.py:578 flatcamTools/ToolTransform.py:607 +#: flatcamTools/ToolTransform.py:625 +msgid "Wrong value format entered, use a number." +msgstr "" + #: flatcamTools/ToolCutOut.py:18 msgid "Cutout PCB" msgstr "" @@ -9086,119 +9086,109 @@ msgid "" "the Geometry object used as a cutout geometry." msgstr "" -#: flatcamTools/ToolCutOut.py:371 flatcamTools/ToolCutOut.py:568 -#: flatcamTools/ToolNonCopperClear.py:1086 -#: flatcamTools/ToolNonCopperClear.py:1127 -#: flatcamTools/ToolNonCopperClear.py:1268 flatcamTools/ToolPaint.py:929 -#: flatcamTools/ToolPaint.py:1124 flatcamTools/ToolPanelize.py:358 -#: flatcamTools/ToolPanelize.py:373 flatcamTools/ToolSub.py:252 -#: flatcamTools/ToolSub.py:265 flatcamTools/ToolSub.py:448 -#: flatcamTools/ToolSub.py:461 -#, python-format -msgid "[ERROR_NOTCL] Could not retrieve object: %s" +#: flatcamTools/ToolCutOut.py:371 flatcamTools/ToolCutOut.py:571 +#: flatcamTools/ToolNonCopperClear.py:1124 +#: flatcamTools/ToolNonCopperClear.py:1265 flatcamTools/ToolPaint.py:1141 +#: flatcamTools/ToolPanelize.py:359 flatcamTools/ToolPanelize.py:376 +#: flatcamTools/ToolSub.py:254 flatcamTools/ToolSub.py:269 +#: flatcamTools/ToolSub.py:456 flatcamTools/ToolSub.py:471 +#: tclCommands/TclCommandCopperClear.py:131 +#: tclCommands/TclCommandCopperClear.py:207 tclCommands/TclCommandPaint.py:133 +msgid "Could not retrieve object" msgstr "" -#: flatcamTools/ToolCutOut.py:375 +#: flatcamTools/ToolCutOut.py:376 msgid "" -"[ERROR_NOTCL] There is no object selected for Cutout.\n" +"There is no object selected for Cutout.\n" "Select one and try again." msgstr "" -#: flatcamTools/ToolCutOut.py:390 -msgid "" -"[WARNING_NOTCL] Tool Diameter is zero value. Change it to a positive real " -"number." +#: flatcamTools/ToolCutOut.py:387 flatcamTools/ToolCutOut.py:585 +#: flatcamTools/ToolCutOut.py:755 flatcamTools/ToolCutOut.py:849 +#: flatcamTools/ToolDblSided.py:367 +msgid "Tool diameter value is missing or wrong format. Add it and retry." msgstr "" -#: flatcamTools/ToolCutOut.py:405 flatcamTools/ToolCutOut.py:601 -#: flatcamTools/ToolCutOut.py:858 -msgid "" -"[WARNING_NOTCL] Margin value is missing or wrong format. Add it and retry." +#: flatcamTools/ToolCutOut.py:392 flatcamTools/ToolCutOut.py:590 +#: flatcamTools/ToolCutOut.py:760 flatcamTools/ToolCutOut.py:854 +msgid "Tool Diameter is zero value. Change it to a positive real number." msgstr "" -#: flatcamTools/ToolCutOut.py:416 flatcamTools/ToolCutOut.py:612 -#: flatcamTools/ToolCutOut.py:762 -msgid "" -"[WARNING_NOTCL] Gap size value is missing or wrong format. Add it and retry." +#: flatcamTools/ToolCutOut.py:408 flatcamTools/ToolCutOut.py:606 +#: flatcamTools/ToolCutOut.py:870 +msgid "Margin value is missing or wrong format. Add it and retry." msgstr "" -#: flatcamTools/ToolCutOut.py:423 flatcamTools/ToolCutOut.py:619 -msgid "[WARNING_NOTCL] Number of gaps value is missing. Add it and retry." +#: flatcamTools/ToolCutOut.py:419 flatcamTools/ToolCutOut.py:617 +#: flatcamTools/ToolCutOut.py:771 +msgid "Gap size value is missing or wrong format. Add it and retry." msgstr "" -#: flatcamTools/ToolCutOut.py:427 flatcamTools/ToolCutOut.py:623 -msgid "" -"[WARNING_NOTCL] Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', " -"'2tb', 4 or 8. Fill in a correct value and retry. " +#: flatcamTools/ToolCutOut.py:425 flatcamTools/ToolCutOut.py:624 +msgid "Number of gaps value is missing. Add it and retry." msgstr "" -#: flatcamTools/ToolCutOut.py:433 flatcamTools/ToolCutOut.py:629 +#: flatcamTools/ToolCutOut.py:430 flatcamTools/ToolCutOut.py:628 msgid "" -"[ERROR]Cutout operation cannot be done on a multi-geo Geometry.\n" +"Gaps value can be only one of: 'None', 'lr', 'tb', '2lr', '2tb', 4 or 8. " +"Fill in a correct value and retry. " +msgstr "" + +#: flatcamTools/ToolCutOut.py:435 flatcamTools/ToolCutOut.py:634 +msgid "" +"Cutout operation cannot be done on a multi-geo Geometry.\n" "Optionally, this Multi-geo Geometry can be converted to Single-geo " "Geometry,\n" "and after that perform Cutout." msgstr "" -#: flatcamTools/ToolCutOut.py:551 flatcamTools/ToolCutOut.py:732 -msgid "[success] Any form CutOut operation finished." +#: flatcamTools/ToolCutOut.py:554 flatcamTools/ToolCutOut.py:739 +msgid "Any form CutOut operation finished." msgstr "" -#: flatcamTools/ToolCutOut.py:572 flatcamTools/ToolNonCopperClear.py:1090 -#: flatcamTools/ToolPaint.py:933 flatcamTools/ToolPanelize.py:364 +#: flatcamTools/ToolCutOut.py:575 flatcamTools/ToolNonCopperClear.py:1087 #, python-format -msgid "[ERROR_NOTCL] Object not found: %s" +msgid "Object not found: %s" msgstr "" -#: flatcamTools/ToolCutOut.py:586 flatcamTools/ToolCutOut.py:752 -#: flatcamTools/ToolCutOut.py:843 -msgid "" -"[ERROR_NOTCL] Tool Diameter is zero value. Change it to a positive real " -"number." -msgstr "" - -#: flatcamTools/ToolCutOut.py:737 +#: flatcamTools/ToolCutOut.py:744 msgid "" "Click on the selected geometry object perimeter to create a bridge gap ..." msgstr "" -#: flatcamTools/ToolCutOut.py:772 flatcamTools/ToolCutOut.py:791 -#, python-format -msgid "[ERROR_NOTCL] Could not retrieve Geometry object: %s" +#: flatcamTools/ToolCutOut.py:780 flatcamTools/ToolCutOut.py:799 +msgid "Could not retrieve Geometry object" msgstr "" -#: flatcamTools/ToolCutOut.py:796 -#, python-format -msgid "[ERROR_NOTCL] Geometry object for manual cutout not found: %s" +#: flatcamTools/ToolCutOut.py:804 +msgid "Geometry object for manual cutout not found" msgstr "" -#: flatcamTools/ToolCutOut.py:806 -msgid "[success] Added manual Bridge Gap." +#: flatcamTools/ToolCutOut.py:814 +msgid "Added manual Bridge Gap." msgstr "" -#: flatcamTools/ToolCutOut.py:818 -#, python-format -msgid "[ERROR_NOTCL] Could not retrieve Gerber object: %s" +#: flatcamTools/ToolCutOut.py:826 +msgid "Could not retrieve Gerber object" msgstr "" -#: flatcamTools/ToolCutOut.py:822 +#: flatcamTools/ToolCutOut.py:831 msgid "" -"[ERROR_NOTCL] There is no Gerber object selected for Cutout.\n" +"There is no Gerber object selected for Cutout.\n" "Select one and try again." msgstr "" -#: flatcamTools/ToolCutOut.py:827 +#: flatcamTools/ToolCutOut.py:837 msgid "" -"[ERROR_NOTCL] The selected object has to be of Gerber type.\n" +"The selected object has to be of Gerber type.\n" "Select a Gerber file and try again." msgstr "" -#: flatcamTools/ToolCutOut.py:880 -#, python-format -msgid "[ERROR_NOTCL] Geometry not supported for cutout: %s" +#: flatcamTools/ToolCutOut.py:892 +msgid "Geometry not supported for cutout" msgstr "" -#: flatcamTools/ToolCutOut.py:916 +#: flatcamTools/ToolCutOut.py:928 msgid "Making manual bridge gap..." msgstr "" @@ -9326,79 +9316,62 @@ msgstr "" #: flatcamTools/ToolDblSided.py:331 msgid "" -"[WARNING_NOTCL] 'Point' reference is selected and 'Point' coordinates are " -"missing. Add them and retry." -msgstr "" - -#: flatcamTools/ToolDblSided.py:350 -msgid "" -"[WARNING_NOTCL] There is no Box reference object loaded. Load one and retry." -msgstr "" - -#: flatcamTools/ToolDblSided.py:372 -msgid "" -"[WARNING_NOTCL] No value or wrong format in Drill Dia entry. Add it and " -"retry." -msgstr "" - -#: flatcamTools/ToolDblSided.py:379 -msgid "" -"[WARNING_NOTCL] There are no Alignment Drill Coordinates to use. Add them " +"'Point' reference is selected and 'Point' coordinates are missing. Add them " "and retry." msgstr "" -#: flatcamTools/ToolDblSided.py:402 -msgid "[success] Excellon object with alignment drills created..." +#: flatcamTools/ToolDblSided.py:350 +msgid "There is no Box reference object loaded. Load one and retry." msgstr "" -#: flatcamTools/ToolDblSided.py:411 -msgid "[WARNING_NOTCL] There is no Gerber object loaded ..." +#: flatcamTools/ToolDblSided.py:373 +msgid "No value or wrong format in Drill Dia entry. Add it and retry." msgstr "" -#: flatcamTools/ToolDblSided.py:415 flatcamTools/ToolDblSided.py:458 -#: flatcamTools/ToolDblSided.py:502 +#: flatcamTools/ToolDblSided.py:380 +msgid "There are no Alignment Drill Coordinates to use. Add them and retry." +msgstr "" + +#: flatcamTools/ToolDblSided.py:403 +msgid "Excellon object with alignment drills created..." +msgstr "" + +#: flatcamTools/ToolDblSided.py:412 +msgid "There is no Gerber object loaded ..." +msgstr "" + +#: flatcamTools/ToolDblSided.py:416 flatcamTools/ToolDblSided.py:459 +#: flatcamTools/ToolDblSided.py:503 +msgid "Only Gerber, Excellon and Geometry objects can be mirrored." +msgstr "" + +#: flatcamTools/ToolDblSided.py:426 msgid "" -"[ERROR_NOTCL] Only Gerber, Excellon and Geometry objects can be mirrored." +"'Point' coordinates missing. Using Origin (0, 0) as mirroring reference." msgstr "" -#: flatcamTools/ToolDblSided.py:425 +#: flatcamTools/ToolDblSided.py:436 flatcamTools/ToolDblSided.py:480 +#: flatcamTools/ToolDblSided.py:517 +msgid "There is no Box object loaded ..." +msgstr "" + +#: flatcamTools/ToolDblSided.py:446 flatcamTools/ToolDblSided.py:490 +#: flatcamTools/ToolDblSided.py:527 +msgid "was mirrored" +msgstr "" + +#: flatcamTools/ToolDblSided.py:455 +msgid "There is no Excellon object loaded ..." +msgstr "" + +#: flatcamTools/ToolDblSided.py:470 msgid "" -"[WARNING_NOTCL] 'Point' coordinates missing. Using Origin (0, 0) as " -"mirroring reference." +"There are no Point coordinates in the Point field. Add coords and try " +"again ..." msgstr "" -#: flatcamTools/ToolDblSided.py:435 flatcamTools/ToolDblSided.py:479 -#: flatcamTools/ToolDblSided.py:516 -msgid "[WARNING_NOTCL] There is no Box object loaded ..." -msgstr "" - -#: flatcamTools/ToolDblSided.py:445 -#, python-format -msgid "[success] Gerber %s was mirrored..." -msgstr "" - -#: flatcamTools/ToolDblSided.py:454 -msgid "[WARNING_NOTCL] There is no Excellon object loaded ..." -msgstr "" - -#: flatcamTools/ToolDblSided.py:469 -msgid "" -"[WARNING_NOTCL] There are no Point coordinates in the Point field. Add " -"coords and try again ..." -msgstr "" - -#: flatcamTools/ToolDblSided.py:489 -#, python-format -msgid "[success] Excellon %s was mirrored..." -msgstr "" - -#: flatcamTools/ToolDblSided.py:498 -msgid "[WARNING_NOTCL] There is no Geometry object loaded ..." -msgstr "" - -#: flatcamTools/ToolDblSided.py:526 -#, python-format -msgid "[success] Geometry %s was mirrored..." +#: flatcamTools/ToolDblSided.py:499 +msgid "There is no Geometry object loaded ..." msgstr "" #: flatcamTools/ToolFilm.py:25 @@ -9406,7 +9379,7 @@ msgid "Film PCB" msgstr "" #: flatcamTools/ToolFilm.py:56 flatcamTools/ToolImage.py:53 -#: flatcamTools/ToolPanelize.py:56 flatcamTools/ToolProperties.py:141 +#: flatcamTools/ToolPanelize.py:56 flatcamTools/ToolProperties.py:143 msgid "Object Type" msgstr "" @@ -9474,14 +9447,12 @@ msgid "" "which can be opened with Inkscape." msgstr "" -#: flatcamTools/ToolFilm.py:230 -msgid "" -"[ERROR_NOTCL] No FlatCAM object selected. Load an object for Film and retry." +#: flatcamTools/ToolFilm.py:231 +msgid "No FlatCAM object selected. Load an object for Film and retry." msgstr "" -#: flatcamTools/ToolFilm.py:236 -msgid "" -"[ERROR_NOTCL] No FlatCAM object selected. Load an object for Box and retry." +#: flatcamTools/ToolFilm.py:238 +msgid "No FlatCAM object selected. Load an object for Box and retry." msgstr "" #: flatcamTools/ToolFilm.py:260 @@ -9493,7 +9464,7 @@ msgid "Export SVG positive" msgstr "" #: flatcamTools/ToolFilm.py:274 -msgid "[WARNING_NOTCL] Export SVG positive cancelled." +msgid "Export SVG positive cancelled." msgstr "" #: flatcamTools/ToolFilm.py:281 flatcamTools/ToolFilm.py:285 @@ -9501,7 +9472,7 @@ msgid "Export SVG negative" msgstr "" #: flatcamTools/ToolFilm.py:290 -msgid "[WARNING_NOTCL] Export SVG negative cancelled." +msgid "Export SVG negative cancelled." msgstr "" #: flatcamTools/ToolImage.py:25 @@ -9681,7 +9652,7 @@ msgid "MOVE: Click on the Start point ..." msgstr "" #: flatcamTools/ToolMove.py:88 -msgid "[WARNING_NOTCL] MOVE action cancelled. No object(s) to move." +msgid "MOVE action cancelled. No object(s) to move." msgstr "" #: flatcamTools/ToolMove.py:110 @@ -9693,29 +9664,27 @@ msgid "Moving ..." msgstr "" #: flatcamTools/ToolMove.py:135 -msgid "[WARNING_NOTCL] No object(s) selected." +msgid "No object(s) selected." msgstr "" #: flatcamTools/ToolMove.py:158 -#, python-format -msgid "[ERROR_NOTCL] ToolMove.on_left_click() --> %s" +msgid "ToolMove.on_left_click(" msgstr "" #: flatcamTools/ToolMove.py:164 -#, python-format -msgid "[success] %s object was moved ..." +msgid "object was moved ..." msgstr "" -#: flatcamTools/ToolMove.py:174 -msgid "[ERROR_NOTCL] ToolMove.on_left_click() --> Error when mouse left click." +#: flatcamTools/ToolMove.py:176 +msgid "ToolMove.on_left_click() --> Error when mouse left click." msgstr "" -#: flatcamTools/ToolMove.py:202 -msgid "[WARNING_NOTCL] Move action cancelled." +#: flatcamTools/ToolMove.py:203 +msgid "Move action cancelled." msgstr "" -#: flatcamTools/ToolMove.py:214 -msgid "[WARNING_NOTCL] Object(s) not selected" +#: flatcamTools/ToolMove.py:215 +msgid "Object(s) not selected" msgstr "" #: flatcamTools/ToolNonCopperClear.py:26 @@ -9837,140 +9806,157 @@ msgstr "" msgid "Generate Geometry" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:909 flatcamTools/ToolPaint.py:700 -#: flatcamTools/ToolSolderPaste.py:768 -msgid "[WARNING_NOTCL] Please enter a tool diameter to add, in Float format." +#: flatcamTools/ToolNonCopperClear.py:906 flatcamTools/ToolPaint.py:701 +#: flatcamTools/ToolSolderPaste.py:769 +msgid "Please enter a tool diameter to add, in Float format." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:943 flatcamTools/ToolPaint.py:724 -msgid "[WARNING_NOTCL] Adding tool cancelled. Tool already in Tool Table." +#: flatcamTools/ToolNonCopperClear.py:915 flatcamTools/ToolSolderPaste.py:774 +msgid "Please enter a tool diameter with non-zero value, in Float format." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:948 flatcamTools/ToolPaint.py:729 -msgid "[success] New tool added to Tool Table." +#: flatcamTools/ToolNonCopperClear.py:940 flatcamTools/ToolPaint.py:726 +msgid "Adding tool cancelled. Tool already in Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:992 flatcamTools/ToolPaint.py:774 -msgid "[success] Tool from Tool Table was edited." +#: flatcamTools/ToolNonCopperClear.py:945 flatcamTools/ToolPaint.py:732 +msgid "New tool added to Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1003 flatcamTools/ToolPaint.py:785 -#: flatcamTools/ToolSolderPaste.py:855 -msgid "" -"[WARNING_NOTCL] Edit cancelled. New diameter value is already in the Tool " -"Table." +#: flatcamTools/ToolNonCopperClear.py:989 flatcamTools/ToolPaint.py:778 +msgid "Tool from Tool Table was edited." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1043 flatcamTools/ToolPaint.py:884 -msgid "[WARNING_NOTCL] Delete failed. Select a tool to delete." +#: flatcamTools/ToolNonCopperClear.py:1000 flatcamTools/ToolPaint.py:790 +#: flatcamTools/ToolSolderPaste.py:860 +msgid "Edit cancelled. New diameter value is already in the Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1048 flatcamTools/ToolPaint.py:889 -msgid "[success] Tool(s) deleted from Tool Table." +#: flatcamTools/ToolNonCopperClear.py:1040 flatcamTools/ToolPaint.py:889 +msgid "Delete failed. Select a tool to delete." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1056 flatcamTools/ToolPaint.py:897 +#: flatcamTools/ToolNonCopperClear.py:1045 flatcamTools/ToolPaint.py:895 +msgid "Tool(s) deleted from Tool Table." +msgstr "" + +#: flatcamTools/ToolNonCopperClear.py:1053 flatcamTools/ToolPaint.py:903 msgid "on_paint_button_click" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1070 flatcamTools/ToolPaint.py:912 -msgid "" -"[ERROR_NOTCL] Overlap value must be between 0 (inclusive) and 1 (exclusive), " +#: flatcamTools/ToolNonCopperClear.py:1067 +msgid "Overlap value must be between 0 (inclusive) and 1 (exclusive), " msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1115 flatcamTools/ToolPaint.py:960 -msgid "[ERROR_NOTCL] No selected tools in Tool Table." +#: flatcamTools/ToolNonCopperClear.py:1083 flatcamTools/ToolPaint.py:937 +#, python-format +msgid "Could not retrieve object: %s" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1140 -msgid "[WARNING_NOTCL] Click the start point of the area." +#: flatcamTools/ToolNonCopperClear.py:1103 +msgid "Wrong Tool Dia value format entered, use a number." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1151 flatcamTools/ToolPaint.py:1013 -msgid "[WARNING_NOTCL] Click the end point of the paint area." +#: flatcamTools/ToolNonCopperClear.py:1112 flatcamTools/ToolPaint.py:973 +msgid "No selected tools in Tool Table." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1157 flatcamTools/ToolPaint.py:1019 +#: flatcamTools/ToolNonCopperClear.py:1137 +msgid "Click the start point of the area." +msgstr "" + +#: flatcamTools/ToolNonCopperClear.py:1148 flatcamTools/ToolPaint.py:1029 +msgid "Click the end point of the paint area." +msgstr "" + +#: flatcamTools/ToolNonCopperClear.py:1154 flatcamTools/ToolPaint.py:1035 msgid "Zone added. Click to start adding next zone or right click to finish." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1321 +#: flatcamTools/ToolNonCopperClear.py:1318 msgid "Non-Copper clearing ..." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1420 flatcamTools/ToolPaint.py:2247 -msgid "[ERROR_NOTCL] No object available." +#: flatcamTools/ToolNonCopperClear.py:1415 flatcamTools/ToolPaint.py:2276 +msgid "No object available." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1454 -msgid "[ERROR_NOTCL] The reference object type is not supported." +#: flatcamTools/ToolNonCopperClear.py:1449 +msgid "The reference object type is not supported." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1510 -#: flatcamTools/ToolNonCopperClear.py:1590 -#: flatcamTools/ToolNonCopperClear.py:1597 -#: flatcamTools/ToolNonCopperClear.py:1796 -#: flatcamTools/ToolNonCopperClear.py:1876 -#: flatcamTools/ToolNonCopperClear.py:1883 +#: flatcamTools/ToolNonCopperClear.py:1505 +#: flatcamTools/ToolNonCopperClear.py:1795 +#: flatcamTools/ToolNonCopperClear.py:1875 +msgid "Buffering ..." +msgstr "" + +#: flatcamTools/ToolNonCopperClear.py:1507 +#: flatcamTools/ToolNonCopperClear.py:1587 +#: flatcamTools/ToolNonCopperClear.py:1594 +#: flatcamTools/ToolNonCopperClear.py:1797 +#: flatcamTools/ToolNonCopperClear.py:1877 +#: flatcamTools/ToolNonCopperClear.py:1884 +msgid "Buffering finished ..." +msgstr "" + +#: flatcamTools/ToolNonCopperClear.py:1525 +#: flatcamTools/ToolNonCopperClear.py:1815 +msgid "Isolation geometry could not be generated." +msgstr "" + +#: flatcamTools/ToolNonCopperClear.py:1585 +#: flatcamTools/ToolNonCopperClear.py:1592 +#: flatcamTools/ToolNonCopperClear.py:1882 msgid "[WARNING_NOTCL] Buffering ..." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1512 -#: flatcamTools/ToolNonCopperClear.py:1592 -#: flatcamTools/ToolNonCopperClear.py:1599 -#: flatcamTools/ToolNonCopperClear.py:1798 -#: flatcamTools/ToolNonCopperClear.py:1878 -#: flatcamTools/ToolNonCopperClear.py:1885 -msgid "[success] Buffering finished ..." +#: flatcamTools/ToolNonCopperClear.py:1597 +#: flatcamTools/ToolNonCopperClear.py:1887 +msgid "The selected object is not suitable for copper clearing." msgstr "" #: flatcamTools/ToolNonCopperClear.py:1602 -#: flatcamTools/ToolNonCopperClear.py:1888 -msgid "[ERROR_NOTCL] The selected object is not suitable for copper clearing." -msgstr "" - -#: flatcamTools/ToolNonCopperClear.py:1606 #: flatcamTools/ToolNonCopperClear.py:1892 -msgid "" -"[ERROR_NOTCL] Could not get the extent of the area to be non copper cleared." +msgid "Could not get the extent of the area to be non copper cleared." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1617 -#: flatcamTools/ToolNonCopperClear.py:1694 +#: flatcamTools/ToolNonCopperClear.py:1613 +#: flatcamTools/ToolNonCopperClear.py:1690 #: flatcamTools/ToolNonCopperClear.py:2001 msgid "Non-Copper Clearing with tool diameter = " msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1620 -#: flatcamTools/ToolNonCopperClear.py:1697 +#: flatcamTools/ToolNonCopperClear.py:1616 +#: flatcamTools/ToolNonCopperClear.py:1693 #: flatcamTools/ToolNonCopperClear.py:1911 -#: flatcamTools/ToolNonCopperClear.py:2004 flatcamTools/ToolPaint.py:1530 -#: flatcamTools/ToolPaint.py:1600 flatcamTools/ToolPaint.py:1727 -#: flatcamTools/ToolPaint.py:1938 flatcamTools/ToolPaint.py:2008 -#: flatcamTools/ToolPaint.py:2087 flatcamTools/ToolPaint.py:2142 +#: flatcamTools/ToolNonCopperClear.py:2004 flatcamTools/ToolPaint.py:1553 +#: flatcamTools/ToolPaint.py:1624 flatcamTools/ToolPaint.py:1753 +#: flatcamTools/ToolPaint.py:1965 flatcamTools/ToolPaint.py:2035 +#: flatcamTools/ToolPaint.py:2115 flatcamTools/ToolPaint.py:2170 msgid "started. Progress" msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1750 flatcamTools/ToolPaint.py:1343 -#: flatcamTools/ToolPaint.py:1638 flatcamTools/ToolPaint.py:2046 +#: flatcamTools/ToolNonCopperClear.py:1746 flatcamTools/ToolPaint.py:1364 +#: flatcamTools/ToolPaint.py:1663 flatcamTools/ToolPaint.py:1786 +#: flatcamTools/ToolPaint.py:2074 flatcamTools/ToolPaint.py:2203 msgid "" -"[ERROR] There is no Painting Geometry in the file.\n" +"There is no Painting Geometry in the file.\n" "Usually it means that the tool diameter is too big for the painted " "geometry.\n" "Change the painting parameters and try again." msgstr "" -#: flatcamTools/ToolNonCopperClear.py:1759 -msgid "[success] Non-Copper clear all done." +#: flatcamTools/ToolNonCopperClear.py:1756 +msgid "Non-Copper clear all done." +msgstr "" + +#: flatcamTools/ToolNonCopperClear.py:1758 +msgid "" +"Non-Copper clear all done but the copper features isolation is broken for" msgstr "" #: flatcamTools/ToolNonCopperClear.py:1761 -msgid "" -"[WARNING] Non-Copper clear all done but the copper features isolation is " -"broken for" -msgstr "" - -#: flatcamTools/ToolNonCopperClear.py:1762 #: flatcamTools/ToolNonCopperClear.py:2055 msgid "tools" msgstr "" @@ -9980,13 +9966,13 @@ msgid "Non-Copper Rest Clearing with tool diameter = " msgstr "" #: flatcamTools/ToolNonCopperClear.py:2051 -msgid "[success] Non-Copper Rest Machining clear all done." +msgid "Non-Copper Rest Machining clear all done." msgstr "" #: flatcamTools/ToolNonCopperClear.py:2054 msgid "" -"[WARNING] Non-Copper Rest Machining clear all done but the copper features " -"isolation is broken for" +"Non-Copper Rest Machining clear all done but the copper features isolation " +"is broken for" msgstr "" #: flatcamTools/ToolPDF.py:38 @@ -9998,25 +9984,28 @@ msgid "Open PDF" msgstr "" #: flatcamTools/ToolPDF.py:159 -msgid "[WARNING_NOTCL] Open PDF cancelled." +msgid "Open PDF cancelled" msgstr "" #: flatcamTools/ToolPDF.py:186 msgid "Parsing PDF file ..." msgstr "" -#: flatcamTools/ToolPDF.py:265 flatcamTools/ToolPDF.py:338 +#: flatcamTools/ToolPDF.py:262 flatcamTools/ToolPcbWizard.py:451 +msgid "No geometry found in file" +msgstr "" + +#: flatcamTools/ToolPDF.py:265 flatcamTools/ToolPDF.py:340 #, python-format msgid "Rendering PDF layer #%d ..." msgstr "" -#: flatcamTools/ToolPDF.py:269 flatcamTools/ToolPDF.py:342 -msgid "[ERROR_NOTCL] Open PDF file failed." +#: flatcamTools/ToolPDF.py:270 flatcamTools/ToolPDF.py:345 +msgid "Open PDF file failed." msgstr "" -#: flatcamTools/ToolPDF.py:274 flatcamTools/ToolPDF.py:347 -#, python-format -msgid "[success] Rendered: %s" +#: flatcamTools/ToolPDF.py:276 flatcamTools/ToolPDF.py:350 +msgid "Rendered" msgstr "" #: flatcamTools/ToolPaint.py:70 @@ -10114,90 +10103,93 @@ msgid "" "specified by another object." msgstr "" -#: flatcamTools/ToolPaint.py:916 flatcamTools/ToolPaint.py:972 -msgid "[WARNING_NOTCL] Click inside the desired polygon." +#: flatcamTools/ToolPaint.py:919 +msgid "Overlap value must be between 0 (inclusive) and 1 (exclusive)" msgstr "" -#: flatcamTools/ToolPaint.py:939 -msgid "[ERROR_NOTCL] Can't do Paint on MultiGeo geometries ..." +#: flatcamTools/ToolPaint.py:923 flatcamTools/ToolPaint.py:986 +msgid "Click inside the desired polygon." msgstr "" -#: flatcamTools/ToolPaint.py:981 flatcamTools/ToolPaint.py:1425 -#: flatcamTools/ToolPaint.py:1835 +#: flatcamTools/ToolPaint.py:943 flatcamTools/ToolPanelize.py:366 +#: tclCommands/TclCommandBbox.py:66 tclCommands/TclCommandNregions.py:65 +msgid "Object not found" +msgstr "" + +#: flatcamTools/ToolPaint.py:951 +msgid "Can't do Paint on MultiGeo geometries" +msgstr "" + +#: flatcamTools/ToolPaint.py:995 flatcamTools/ToolPaint.py:1448 +#: flatcamTools/ToolPaint.py:1862 msgid "Painting polygon..." msgstr "" -#: flatcamTools/ToolPaint.py:1002 -msgid "[WARNING_NOTCL] Click the start point of the paint area." +#: flatcamTools/ToolPaint.py:1017 +msgid "Click the start point of the paint area." msgstr "" -#: flatcamTools/ToolPaint.py:1188 +#: flatcamTools/ToolPaint.py:1206 msgid "[WARNING] No polygon found." msgstr "" -#: flatcamTools/ToolPaint.py:1191 +#: flatcamTools/ToolPaint.py:1209 msgid "Painting polygon." msgstr "" -#: flatcamTools/ToolPaint.py:1264 -msgid "[ERROR_NOTCL] Geometry could not be painted completely" +#: flatcamTools/ToolPaint.py:1283 +msgid "Geometry could not be painted completely" msgstr "" -#: flatcamTools/ToolPaint.py:1307 -#, python-format +#: flatcamTools/ToolPaint.py:1326 msgid "" -"[ERROR] Could not do Paint. Try a different combination of parameters. Or a " -"different strategy of paint\n" -"%s" -msgstr "" - -#: flatcamTools/ToolPaint.py:1348 -msgid "[success] Paint Single Done." +"Could not do Paint. Try a different combination of parameters. Or a " +"different strategy of paint" msgstr "" #: flatcamTools/ToolPaint.py:1369 -#, python-format -msgid "[ERROR_NOTCL] PaintTool.paint_poly() --> %s" +msgid "Paint Single Done." msgstr "" -#: flatcamTools/ToolPaint.py:1375 flatcamTools/ToolPaint.py:1784 -#: flatcamTools/ToolPaint.py:2199 +#: flatcamTools/ToolPaint.py:1391 +msgid "PaintTool.paint_poly()" +msgstr "" + +#: flatcamTools/ToolPaint.py:1398 flatcamTools/ToolPaint.py:1811 +#: flatcamTools/ToolPaint.py:2228 msgid "Polygon Paint started ..." msgstr "" -#: flatcamTools/ToolPaint.py:1527 flatcamTools/ToolPaint.py:1597 -#: flatcamTools/ToolPaint.py:1724 flatcamTools/ToolPaint.py:1935 -#: flatcamTools/ToolPaint.py:2005 flatcamTools/ToolPaint.py:2084 -#: flatcamTools/ToolPaint.py:2139 +#: flatcamTools/ToolPaint.py:1550 flatcamTools/ToolPaint.py:1621 +#: flatcamTools/ToolPaint.py:1750 flatcamTools/ToolPaint.py:1962 +#: flatcamTools/ToolPaint.py:2032 flatcamTools/ToolPaint.py:2112 +#: flatcamTools/ToolPaint.py:2167 msgid "Painting with tool diameter = " msgstr "" -#: flatcamTools/ToolPaint.py:1587 flatcamTools/ToolPaint.py:1714 -#: flatcamTools/ToolPaint.py:1995 flatcamTools/ToolPaint.py:2129 -#, python-format +#: flatcamTools/ToolPaint.py:1610 flatcamTools/ToolPaint.py:1739 msgid "" -"[ERROR] Could not do Paint All. Try a different combination of parameters. " -"Or a different Method of paint\n" -"%s" +"Could not do Paint All. Try a different combination of parameters. Or a " +"different Method of paint" msgstr "" -#: flatcamTools/ToolPaint.py:1647 +#: flatcamTools/ToolPaint.py:1672 msgid "[success] Paint All Done." msgstr "" -#: flatcamTools/ToolPaint.py:1759 flatcamTools/ToolPaint.py:2174 +#: flatcamTools/ToolPaint.py:1795 flatcamTools/ToolPaint.py:2212 +msgid "Paint All with Rest-Machining done." +msgstr "" + +#: flatcamTools/ToolPaint.py:2022 flatcamTools/ToolPaint.py:2157 +#, python-format msgid "" -"[ERROR_NOTCL] There is no Painting Geometry in the file.\n" -"Usually it means that the tool diameter is too big for the painted " -"geometry.\n" -"Change the painting parameters and try again." +"Could not do Paint All. Try a different combination of parameters. Or a " +"different Method of paint\n" +"%s" msgstr "" -#: flatcamTools/ToolPaint.py:1768 flatcamTools/ToolPaint.py:2183 -msgid "[success] Paint All with Rest-Machining done." -msgstr "" - -#: flatcamTools/ToolPaint.py:2055 +#: flatcamTools/ToolPaint.py:2083 msgid "[success] Paint Area Done." msgstr "" @@ -10293,43 +10285,40 @@ msgstr "" msgid "Panel. Tool" msgstr "" -#: flatcamTools/ToolPanelize.py:377 -#, python-format -msgid "[WARNING_NOTCL]No object Box. Using instead %s" +#: flatcamTools/ToolPanelize.py:381 +msgid "No object Box. Using instead" msgstr "" -#: flatcamTools/ToolPanelize.py:460 -msgid "" -"[ERROR_NOTCL] Columns or Rows are zero value. Change them to a positive " -"integer." +#: flatcamTools/ToolPanelize.py:465 +msgid "Columns or Rows are zero value. Change them to a positive integer." msgstr "" -#: flatcamTools/ToolPanelize.py:485 +#: flatcamTools/ToolPanelize.py:490 msgid "Generating panel ... Please wait." msgstr "" -#: flatcamTools/ToolPanelize.py:623 +#: flatcamTools/ToolPanelize.py:628 #, python-format msgid "Found %s geometries. Creating a final panel geometry ..." msgstr "" -#: flatcamTools/ToolPanelize.py:638 -msgid "[success] Panel done..." +#: flatcamTools/ToolPanelize.py:643 +msgid "Panel done..." msgstr "" -#: flatcamTools/ToolPanelize.py:641 +#: flatcamTools/ToolPanelize.py:646 #, python-brace-format msgid "" -"[WARNING] Too big for the constrain area. Final panel has {col} columns and " +"{text} Too big for the constrain area. Final panel has {col} columns and " "{row} rows" msgstr "" -#: flatcamTools/ToolPanelize.py:645 +#: flatcamTools/ToolPanelize.py:650 msgid "Generating panel ..." msgstr "" -#: flatcamTools/ToolPanelize.py:650 -msgid "[success] Panel created successfully." +#: flatcamTools/ToolPanelize.py:655 +msgid "Panel created successfully." msgstr "" #: flatcamTools/ToolPcbWizard.py:32 @@ -10437,118 +10426,124 @@ msgstr "" msgid "Load PcbWizard INF file" msgstr "" -#: flatcamTools/ToolPcbWizard.py:365 +#: flatcamTools/ToolPcbWizard.py:366 msgid "" -"[ERROR] The INF file does not contain the tool table.\n" +"The INF file does not contain the tool table.\n" "Try to open the Excellon file from File -> Open -> Excellon\n" "and edit the drill diameters manually." msgstr "" -#: flatcamTools/ToolPcbWizard.py:385 -msgid "[success] PcbWizard .INF file loaded." +#: flatcamTools/ToolPcbWizard.py:387 +msgid "PcbWizard .INF file loaded." msgstr "" -#: flatcamTools/ToolPcbWizard.py:389 -msgid "[success] Main PcbWizard Excellon file loaded." +#: flatcamTools/ToolPcbWizard.py:392 +msgid "Main PcbWizard Excellon file loaded." msgstr "" -#: flatcamTools/ToolPcbWizard.py:426 -#, python-format -msgid "[ERROR_NOTCL] Cannot parse file: %s" +#: flatcamTools/ToolPcbWizard.py:427 +msgid "This is not Excellon file." msgstr "" -#: flatcamTools/ToolPcbWizard.py:450 +#: flatcamTools/ToolPcbWizard.py:431 +msgid "Cannot parse file" +msgstr "" + +#: flatcamTools/ToolPcbWizard.py:437 +msgid "An internal error has occurred. See shell.\n" +msgstr "" + +#: flatcamTools/ToolPcbWizard.py:456 msgid "Importing Excellon." msgstr "" -#: flatcamTools/ToolPcbWizard.py:457 -msgid "[ERROR_NOTCL] Import Excellon file failed." +#: flatcamTools/ToolPcbWizard.py:463 +msgid "Import Excellon file failed." msgstr "" -#: flatcamTools/ToolPcbWizard.py:464 -#, python-format -msgid "[success] Imported: %s" +#: flatcamTools/ToolPcbWizard.py:471 +msgid "Imported" msgstr "" -#: flatcamTools/ToolPcbWizard.py:467 -msgid "[WARNING_NOTCL] Excellon merging is in progress. Please wait..." +#: flatcamTools/ToolPcbWizard.py:475 +msgid "Excellon merging is in progress. Please wait..." msgstr "" -#: flatcamTools/ToolPcbWizard.py:469 -msgid "[ERROR_NOTCL] The imported Excellon file is None." +#: flatcamTools/ToolPcbWizard.py:478 +msgid "The imported Excellon file is None." msgstr "" -#: flatcamTools/ToolProperties.py:111 -msgid "[ERROR_NOTCL] Properties Tool was not displayed. No object selected." +#: flatcamTools/ToolProperties.py:112 +msgid "Properties Tool was not displayed. No object selected." msgstr "" -#: flatcamTools/ToolProperties.py:118 -msgid "[success] Object Properties are displayed." +#: flatcamTools/ToolProperties.py:120 +msgid "Object Properties are displayed." msgstr "" -#: flatcamTools/ToolProperties.py:119 +#: flatcamTools/ToolProperties.py:121 msgid "Properties Tool" msgstr "" -#: flatcamTools/ToolProperties.py:128 +#: flatcamTools/ToolProperties.py:130 msgid "TYPE" msgstr "" -#: flatcamTools/ToolProperties.py:129 +#: flatcamTools/ToolProperties.py:131 msgid "NAME" msgstr "" -#: flatcamTools/ToolProperties.py:130 +#: flatcamTools/ToolProperties.py:132 msgid "Dimensions" msgstr "" -#: flatcamTools/ToolProperties.py:133 +#: flatcamTools/ToolProperties.py:135 msgid "Options" msgstr "" -#: flatcamTools/ToolProperties.py:144 +#: flatcamTools/ToolProperties.py:146 msgid "Geo Type" msgstr "" -#: flatcamTools/ToolProperties.py:145 +#: flatcamTools/ToolProperties.py:147 msgid "Single-Geo" msgstr "" -#: flatcamTools/ToolProperties.py:145 +#: flatcamTools/ToolProperties.py:147 msgid "Multi-Geo" msgstr "" -#: flatcamTools/ToolProperties.py:153 +#: flatcamTools/ToolProperties.py:155 msgid "Calculating dimensions ... Please wait." msgstr "" -#: flatcamTools/ToolProperties.py:244 +#: flatcamTools/ToolProperties.py:246 msgid "Inch" msgstr "" -#: flatcamTools/ToolProperties.py:245 +#: flatcamTools/ToolProperties.py:247 msgid "Metric" msgstr "" -#: flatcamTools/ToolProperties.py:296 flatcamTools/ToolProperties.py:310 -#: flatcamTools/ToolProperties.py:313 flatcamTools/ToolProperties.py:316 +#: flatcamTools/ToolProperties.py:298 flatcamTools/ToolProperties.py:312 +#: flatcamTools/ToolProperties.py:315 flatcamTools/ToolProperties.py:318 msgid "Present" msgstr "" -#: flatcamTools/ToolProperties.py:296 flatcamTools/ToolProperties.py:310 -#: flatcamTools/ToolProperties.py:313 flatcamTools/ToolProperties.py:316 +#: flatcamTools/ToolProperties.py:298 flatcamTools/ToolProperties.py:312 +#: flatcamTools/ToolProperties.py:315 flatcamTools/ToolProperties.py:318 msgid "None" msgstr "" -#: flatcamTools/ToolProperties.py:350 +#: flatcamTools/ToolProperties.py:352 msgid "Width" msgstr "" -#: flatcamTools/ToolProperties.py:355 flatcamTools/ToolProperties.py:359 +#: flatcamTools/ToolProperties.py:357 flatcamTools/ToolProperties.py:361 msgid "Box Area" msgstr "" -#: flatcamTools/ToolProperties.py:356 flatcamTools/ToolProperties.py:360 +#: flatcamTools/ToolProperties.py:358 flatcamTools/ToolProperties.py:362 msgid "Convex_Hull Area" msgstr "" @@ -10717,91 +10712,108 @@ msgstr "" msgid "Delete Object" msgstr "" -#: flatcamTools/ToolSolderPaste.py:797 -msgid "" -"[WARNING_NOTCL] Adding Nozzle tool cancelled. Tool already in Tool Table." +#: flatcamTools/ToolSolderPaste.py:799 +msgid "Adding Nozzle tool cancelled. Tool already in Tool Table." msgstr "" -#: flatcamTools/ToolSolderPaste.py:802 -msgid "[success] New Nozzle tool added to Tool Table." +#: flatcamTools/ToolSolderPaste.py:805 +msgid "New Nozzle tool added to Tool Table." msgstr "" -#: flatcamTools/ToolSolderPaste.py:844 -msgid "[success] Nozzle tool from Tool Table was edited." -msgstr "" - -#: flatcamTools/ToolSolderPaste.py:901 -msgid "[WARNING_NOTCL] Delete failed. Select a Nozzle tool to delete." +#: flatcamTools/ToolSolderPaste.py:848 +msgid "Nozzle tool from Tool Table was edited." msgstr "" #: flatcamTools/ToolSolderPaste.py:906 -msgid "[success] Nozzle tool(s) deleted from Tool Table." +msgid "Delete failed. Select a Nozzle tool to delete." msgstr "" -#: flatcamTools/ToolSolderPaste.py:961 -msgid "[WARNING_NOTCL] No SolderPaste mask Gerber object loaded." +#: flatcamTools/ToolSolderPaste.py:912 +msgid "Nozzle tool(s) deleted from Tool Table." msgstr "" -#: flatcamTools/ToolSolderPaste.py:979 +#: flatcamTools/ToolSolderPaste.py:968 +msgid "No SolderPaste mask Gerber object loaded." +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:986 msgid "Creating Solder Paste dispensing geometry." msgstr "" -#: flatcamTools/ToolSolderPaste.py:991 -msgid "[WARNING_NOTCL] No Nozzle tools in the tool table." -msgstr "" - -#: flatcamTools/ToolSolderPaste.py:1120 -msgid "[success] Solder Paste geometry generated successfully..." +#: flatcamTools/ToolSolderPaste.py:999 +msgid "No Nozzle tools in the tool table." msgstr "" #: flatcamTools/ToolSolderPaste.py:1126 -msgid "" -"[WARNING_NOTCL] Some or all pads have no solder due of inadequate nozzle " -"diameters..." +msgid "Cancelled. Empty file, it has no geometry..." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1140 +#: flatcamTools/ToolSolderPaste.py:1130 +msgid "Solder Paste geometry generated successfully" +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1137 +msgid "Some or all pads have no solder due of inadequate nozzle diameters..." +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1151 msgid "Generating Solder Paste dispensing geometry..." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1160 -msgid "[WARNING_NOTCL] There is no Geometry object available." +#: flatcamTools/ToolSolderPaste.py:1172 +msgid "There is no Geometry object available." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1164 +#: flatcamTools/ToolSolderPaste.py:1177 +msgid "This Geometry can't be processed. NOT a solder_paste_tool geometry." +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1187 +msgid "Cancelled. Empty file, it has no geometry" +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1214 +msgid "An internal error has ocurred. See shell.\n" +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1285 +msgid "ToolSolderPaste CNCjob created" +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1318 flatcamTools/ToolSolderPaste.py:1323 +#: flatcamTools/ToolSolderPaste.py:1378 msgid "" -"[WARNING_NOTCL] This Geometry can't be processed. NOT a solder_paste_tool " -"geometry." +"This CNCJob object can't be processed. NOT a solder_paste_tool CNCJob object." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1270 -#, python-format -msgid "[success] ToolSolderPaste CNCjob created: %s" +#: flatcamTools/ToolSolderPaste.py:1348 +msgid "No Gcode in the object" msgstr "" -#: flatcamTools/ToolSolderPaste.py:1302 flatcamTools/ToolSolderPaste.py:1306 #: flatcamTools/ToolSolderPaste.py:1358 -msgid "" -"[WARNING_NOTCL] This CNCJob object can't be processed. NOT a " -"solder_paste_tool CNCJob object." +msgid "ToolSolderPaste.on_view_gcode()" msgstr "" -#: flatcamTools/ToolSolderPaste.py:1330 -msgid "[ERROR_NOTCL] No Gcode in the object..." -msgstr "" - -#: flatcamTools/ToolSolderPaste.py:1339 -#, python-format -msgid "[ERROR] ToolSolderPaste.on_view_gcode() -->%s" -msgstr "" - -#: flatcamTools/ToolSolderPaste.py:1368 +#: flatcamTools/ToolSolderPaste.py:1388 msgid "Export GCode ..." msgstr "" -#: flatcamTools/ToolSolderPaste.py:1412 -#, python-format -msgid "[success] Solder paste dispenser GCode file saved to: %s" +#: flatcamTools/ToolSolderPaste.py:1397 +msgid "Export Machine Code cancelled ..." +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1424 +msgid "No such file or directory" +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1428 +msgid "" +"Permission denied, saving not possible.\n" +"Most likely another app is holding the file open and not accessible." +msgstr "" + +#: flatcamTools/ToolSolderPaste.py:1436 +msgid "Solder paste dispenser GCode file saved to" msgstr "" #: flatcamTools/ToolSub.py:57 @@ -10870,43 +10882,41 @@ msgstr "" msgid "Sub Tool" msgstr "" -#: flatcamTools/ToolSub.py:244 flatcamTools/ToolSub.py:440 -msgid "[ERROR_NOTCL] No Target object loaded." +#: flatcamTools/ToolSub.py:245 flatcamTools/ToolSub.py:447 +msgid "No Target object loaded." msgstr "" -#: flatcamTools/ToolSub.py:257 flatcamTools/ToolSub.py:453 -msgid "[ERROR_NOTCL] No Substractor object loaded." +#: flatcamTools/ToolSub.py:260 flatcamTools/ToolSub.py:462 +msgid "No Substractor object loaded." msgstr "" -#: flatcamTools/ToolSub.py:310 +#: flatcamTools/ToolSub.py:314 #, python-format msgid "Parsing aperture %s geometry ..." msgstr "" -#: flatcamTools/ToolSub.py:412 flatcamTools/ToolSub.py:608 +#: flatcamTools/ToolSub.py:416 flatcamTools/ToolSub.py:619 msgid "Generating new object ..." msgstr "" -#: flatcamTools/ToolSub.py:415 flatcamTools/ToolSub.py:611 -#: flatcamTools/ToolSub.py:690 -msgid "[ERROR_NOTCL] Generating new object failed." +#: flatcamTools/ToolSub.py:420 flatcamTools/ToolSub.py:623 +#: flatcamTools/ToolSub.py:704 +msgid "Generating new object failed." msgstr "" -#: flatcamTools/ToolSub.py:419 flatcamTools/ToolSub.py:616 -#, python-format -msgid "[success] Created: %s" +#: flatcamTools/ToolSub.py:425 flatcamTools/ToolSub.py:629 +msgid "Created" msgstr "" -#: flatcamTools/ToolSub.py:465 -msgid "" -"[ERROR_NOTCL] Currently, the Substractor geometry cannot be of type Multigeo." +#: flatcamTools/ToolSub.py:476 +msgid "Currently, the Substractor geometry cannot be of type Multigeo." msgstr "" -#: flatcamTools/ToolSub.py:510 +#: flatcamTools/ToolSub.py:521 msgid "Parsing solid_geometry ..." msgstr "" -#: flatcamTools/ToolSub.py:512 +#: flatcamTools/ToolSub.py:523 #, python-format msgid "Parsing tool %s geometry ..." msgstr "" @@ -10950,64 +10960,86 @@ msgid "" " " msgstr "" -#: flatcamTools/ToolTransform.py:642 -msgid "[WARNING_NOTCL] No object selected. Please Select an object to rotate!" +#: flatcamTools/ToolTransform.py:643 +msgid "No object selected. Please Select an object to rotate!" msgstr "" -#: flatcamTools/ToolTransform.py:670 +#: flatcamTools/ToolTransform.py:671 msgid "CNCJob objects can't be rotated." msgstr "" -#: flatcamTools/ToolTransform.py:678 -msgid "[success] Rotate done ..." +#: flatcamTools/ToolTransform.py:679 +msgid "Rotate done" msgstr "" -#: flatcamTools/ToolTransform.py:693 -msgid "[WARNING_NOTCL] No object selected. Please Select an object to flip!" +#: flatcamTools/ToolTransform.py:684 flatcamTools/ToolTransform.py:759 +#: flatcamTools/ToolTransform.py:808 flatcamTools/ToolTransform.py:867 +#: flatcamTools/ToolTransform.py:903 +msgid "Due of" msgstr "" -#: flatcamTools/ToolTransform.py:728 +#: flatcamTools/ToolTransform.py:684 flatcamTools/ToolTransform.py:759 +#: flatcamTools/ToolTransform.py:808 flatcamTools/ToolTransform.py:867 +#: flatcamTools/ToolTransform.py:903 +msgid "action was not executed." +msgstr "" + +#: flatcamTools/ToolTransform.py:696 +msgid "No object selected. Please Select an object to flip" +msgstr "" + +#: flatcamTools/ToolTransform.py:731 msgid "CNCJob objects can't be mirrored/flipped." msgstr "" -#: flatcamTools/ToolTransform.py:762 -msgid "" -"[WARNING_NOTCL] No object selected. Please Select an object to shear/skew!" +#: flatcamTools/ToolTransform.py:742 +msgid "Flip on the Y axis done" msgstr "" -#: flatcamTools/ToolTransform.py:784 +#: flatcamTools/ToolTransform.py:752 +msgid "Flip on the X axis done" +msgstr "" + +#: flatcamTools/ToolTransform.py:769 +msgid "No object selected. Please Select an object to shear/skew!" +msgstr "" + +#: flatcamTools/ToolTransform.py:791 msgid "CNCJob objects can't be skewed." msgstr "" -#: flatcamTools/ToolTransform.py:811 -msgid "[WARNING_NOTCL] No object selected. Please Select an object to scale!" +#: flatcamTools/ToolTransform.py:820 +msgid "No object selected. Please Select an object to scale!" msgstr "" -#: flatcamTools/ToolTransform.py:844 +#: flatcamTools/ToolTransform.py:853 msgid "CNCJob objects can't be scaled." msgstr "" #: flatcamTools/ToolTransform.py:863 -msgid "[WARNING_NOTCL] No object selected. Please Select an object to offset!" +msgid "Scale on the" msgstr "" -#: flatcamTools/ToolTransform.py:872 -msgid "CNCJob objects can't be offseted." +#: flatcamTools/ToolTransform.py:863 flatcamTools/ToolTransform.py:898 +msgid "axis done" msgstr "" -#: tclCommands/TclCommandBbox.py:66 tclCommands/TclCommandNregions.py:65 -msgid "Object not found" +#: flatcamTools/ToolTransform.py:875 +msgid "No object selected. Please Select an object to offset!" +msgstr "" + +#: flatcamTools/ToolTransform.py:884 +msgid "CNCJob objects can't be offset." +msgstr "" + +#: flatcamTools/ToolTransform.py:898 +msgid "Offset on the" msgstr "" #: tclCommands/TclCommandBbox.py:70 tclCommands/TclCommandNregions.py:68 msgid "Expected FlatCAMGerber or FlatCAMGeometry, got" msgstr "" -#: tclCommands/TclCommandCopperClear.py:131 -#: tclCommands/TclCommandCopperClear.py:207 tclCommands/TclCommandPaint.py:133 -msgid "Could not retrieve object" -msgstr "" - #: tclCommands/TclCommandCopperClear.py:234 tclCommands/TclCommandPaint.py:231 msgid "Expected -box ." msgstr ""