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 ""